3.2.3p1 on OpenServer

Carson Gaspar carson at taltos.org
Sun May 26 04:20:35 EST 2002


--On Thursday, May 23, 2002 12:17 PM -0600 Greg Jewell <greg17 at jewell.net> 
wrote:

> For bug 245 in 3.2.2p1, the call to setsid() is sshd.c was bypassed due
> to problems it was causing with Solaris.  However, by allowing this
> method to be called, the stair-stepping goes  away.

Sadly, my APUE has gone walkabout, but I think he issue lies in calling 
setsid() and not opening a terminal. From Solaris termio(7d):

     The first terminal file opened by the  ses-
     sion  leader  that  is not already associated with a session
     becomes the controlling terminal for that session. The  con-
     trolling  terminal plays a special role in handling quit and
     interrupt signals, as discussed below. The controlling  ter-
     minal  is  inherited by a child process during a fork(2).  A
     process can break this association by changing  its  session
     using   setsid() (see getsid(2)).

If OpenSSH is going to call setsid(), it must then open whatever terminal 
is going to be used (and then dup the fd to 0,1,2).

Of course, this probably won't fix the real problem for OpenServer, which 
seems to be in the propogation of tty settings.

-- 
Carson




More information about the openssh-unix-dev mailing list