[2714] in Kerberos-V5-bugs

home help back first fref pref prev next nref lref last post

Re: krb5-appl/406: telnetd hoses the host at fork()

daemon@ATHENA.MIT.EDU (Doug Engert)
Tue Apr 1 10:25:51 1997

Date: Tue, 1 Apr 1997 09:18:15 -0600
From: Doug Engert <DEEngert@anl.gov>
To: "Theodore Y. Ts'o" <tytso@MIT.EDU>
Cc: krb5-bugs@MIT.EDU, mdo1@dbatest.cit.cornell.edu,
        krb5-unassigned@RT-11.MIT.EDU, gnats-admin@RT-11.MIT.EDU,
        krb5-prs@RT-11.MIT.EDU
In-Reply-To: <9704010021.AA03887@dcl.MIT.EDU>

Theodore Y. Ts'o writes:
 >    Date: Fri, 28 Mar 1997 15:49:42 -0500
 >    From: mdo1@dbatest.cit.cornell.edu (Michael D Oltz)
 > 
 > 	   tried to use the 16-bit NCSA Telnet for Windows bundled 
 > 	   with the K5 1.0 release to connect to my K5 server host
 > 	   running the K5 telnetd (on a high port number as an
 > 	   alternate).  daemon gets through authentication okay,
 > 	   then it calls startslave.  when it gets to the fork
 > 	   call, the daemon causes a hard crash (cold boot required).
 > 	   i haven't stepped into the kernel yet, but it crashes
 > 	   fast enough that gdb doesn't report the creation of a 
 > 	   new thread. it could be that the child starts, but dies
 > 	   before the parent gets to return from the fork()
 > 	   p.s. i can gssftp from aforementioned
 > 	   host to itself without trouble. but self-telnet dies.
 > 	   connecting with any vanilla telnet client causes the
 > 	   same problem. any advice? anybody else had this problem?

Yes. login.krb5 hangs my AIX 4.1.4 systems as well. I have not tried
it on a AIX 4.2 system yet.

A circumvention is to use the AIX login instead of the login.krb5.
This will work for the telnetd and rlogind. But not for a login at the
console. Have sbin/login.krb5 -> /usr/bin/login. I am doing this on our
AIX 4.1.4 and AIX 4.2 systems. Both are using the K5-1.0 built on AIX
4.1.4 (I actually have login.krb5 -> k5prelogin which checks for DCE
and/or AFS and execs k5dcelogin and/or k5afslogin, which then exec
/usr/bin/login instead of the login.krb5)

 > 
 > This is a known problem with AIX 4.1; our pty handling is somehow
 > causing AIX 4.x to lock up and crash.  While this clearly means there's
 > a bug in our pty library, it's also a major bug in AIX that a user
 > program can cause the kernel to panic.
 > 
 > We don't have any AIX machines within easy access of our development
 > team, so we're going to be relying on others (who have the misfortune of
 > having to use AIX :-) to try to fix this problem.  For whatever it's
 > worth, our pty code works just fine under AIX 3.x; not only do the
 > kernels not panic, but telnetd and rlogind actually work!  Clearly, IBM
 > changed some very significant things in its pty handling code between
 > AIX 3 and AIX 4. 
 > 
 > If anyone has any suggestions, or better yet patches, we would be
 > greatly appreciative of them.
 > 
 > 						- Ted

I noticed today that the configure.in in the util/pty directory has the
following:

  *-*-aix3*) # AIX has streams include files but not streams TTY
  # Moreover, strops.h trashes sys/ioctl.h
  krb5_cv_has_streams=no

Is this the same problem, or a similar problem: mixing streams pty
calls with a non-stream driver? I can't find a strops.h but there is a
sys/stropts.h on AIX 4.1.4 which does get included by
util/pty/pty-int.h Yet the device which appears to get opened is the
/dev/ptc which I don't believe is the streams driver.

Should the test be expanded to include AIX 4?

Try removing the -DHAVE_STREAMS=1 from the util/pty/Makefile and
rebuilding the lib, and telnetd, and see if it still fails.   

-- 
 
 Douglas E. Engert  <DEEngert@anl.gov>
 Argonne National Laboratory
 9700 South Cass Avenue
 Argonne, Illinois  60439 
 (630) 252-5444

home help back first fref pref prev next nref lref last post