Problem with utmp on IRIX

Iain Morgan imorgan at
Fri Mar 15 06:51:05 EST 2002

Hello all,

It looks like there is a problem with how OpenSSH writes the id field in
utmp and utmpx on IRIX. OpenSSH and IRIX use somewhat differnt conventions
for the id field and this seems to create a problem under some

Under some (as yet undetermined) circumstances IRIX leaves a DEAD_PROCESS
record that still has a username and pid associated with it. When this
happens, cuserid() and getlogin() can get fooled into using the old 
record rather than the record writtne by sshd.

I wrote a small program to extract some of the information from the
utmpx file and have included some output her to help illustrate the

octane30.root./tmp: 51> /bin/tty
octane30.root./tmp: 52> ./utxent | grep ttyq3
octane30.root./tmp: 53> ps -fp 1896751
     UID        PID       PPID  C    STIME TTY     TIME CMD
octane30.root./tmp: 54> who am i
onufer     ttyq3        Mar 13 13:34
octane30.root./tmp: 55> whoami
octane30.root./tmp: 56> 

I made a very minor alteration to loginrec.c which seems to have
eliminated the issue on the systems that I have tested it on.

diff -u src/loginrec.c irix6.5/loginrec.c
--- src/loginrec.c      Mon Oct 29 18:50:40 2001
+++ irix6.5/loginrec.c  Wed Mar  6 11:33:40 2002
@@ -564,6 +564,10 @@
        if (strncmp(src, "/dev/", 5) == 0)
                src += 5;
+       /* Make the ut_id field consistent with IRIX */
+       if (strncmp(src, "tty", 3) == 0)
+               src += 3;
        len = strlen(src);
        if (len > 0) {

Iain Morgan
NAS Desktop Support Group

More information about the openssh-unix-dev mailing list