Recent Padlock changes break ssh

Patrick Lamaizière patfbsd at davenulle.org
Fri Aug 1 11:45:56 UTC 2008


Le Thu, 31 Jul 2008 17:45:36 +0200,
Patrick Lamaizière <patfbsd at davenulle.org> a écrit :

> Le Thu, 31 Jul 2008 15:21:36 +0200,
> Pawel Jakub Dawidek <pjd at FreeBSD.org> a écrit :
> 
> Hello,
> 
> > > I think that one problem is that the session id (ses->ses_id) is
> > > not updated when a free session is reused. The session id is set
> > > to zero by bzero() in padlock_freesession(). So we can have
> > > several active sessions with the same ses->ses_id == 0 if the
> > > sessions are reused.
> > 
> > Great catch! What do you think about using old sessid? I think it's
> > ok to do so and a bit safer, because session ID is only 32bit long
> > so we may get collision once we start from 0 again.

Sorry but i forget this : Since the free sessions are at the head of the
TAILQ, i suggest to use a TAILQ_FOREACH_REVERSE instead TAILQ_FOREACH in
freession() and process() to skip the free sessions.

Regards.


More information about the freebsd-current mailing list