I unfortunately sent a mail to the list, where I included a patch for
utpmx handling in ssh2. That patch was incomplete. However, I have a
confirmation from one user that the following patch fixes the bug.

cd to lib/sshsession and execute the following command:

% patch -p 0 < /path/to/patch-ssh-2.1.0-wtmp

Index: wtmp.c
===================================================================
RCS file: /src/ssh2/lib/sshsession/wtmp.c,v
retrieving revision 1.5
diff -u -r1.5 wtmp.c
--- wtmp.c      2000/04/29 15:42:33     1.5
+++ wtmp.c      2000/06/11 08:27:42
@@ -213,12 +213,18 @@
 
   /* Construct an utmp/wtmp entry. */
   memset(&u, 0, sizeof(u));
-# ifdef DEAD_PROCESS
   if (user == NULL)
-    u.ut_type = DEAD_PROCESS; /* logout */
-  else
-    u.ut_type = USER_PROCESS;
+    {
+# ifdef DEAD_PROCESS
+      u.ut_type = DEAD_PROCESS; /* logout */
+# else /* DEAD_PROCESS */
+      /* XXX */;
 # endif /* DEAD_PROCESS */
+    }
+  else
+    {
+      u.ut_type = USER_PROCESS;
+    }
 # ifdef HAVE_PID_IN_UTMP
   u.ut_pid = pid;
 # endif /* PID_IN_UTMP */
@@ -342,9 +348,9 @@
     struct utmpx ux, *uxp;
     memset(&ux, 0, sizeof(ux));
     strncpy(ux.ut_line, ttyname + 5, sizeof(ux.ut_line));
-    setutxent(); /* open the database and reset to first position */
     if (user == NULL)
       {
+        setutxent(); /* open the database and reset to first position */
         /* logout; find previous entry for pid and zonk it */
         while ((uxp = getutxent()))
           {
@@ -353,6 +359,7 @@
             ux = *uxp;
             break;
           }
+        endutxent();
       }
     else
       {
@@ -363,7 +370,10 @@
         strncpy(ux.ut_user, ssh_user_name(user), sizeof(ux.ut_user));
         ux.ut_type = USER_PROCESS;
       }
-    endutxent();
+# ifdef DEAD_PROCESS
+    if (user == NULL)
+      ux.ut_type = DEAD_PROCESS; /* logout */
+# endif /* DEAD_PROCESS */
 # if defined(__sgi) || defined(SCO) || defined(linux)
     strncpy(ux.ut_id, ttyname + 8, sizeof(ux.ut_id)); /* /dev/ttyq99 -> q99 */
 # else /* __sgi || SCO || linux */

-- 
[[EMAIL PROTECTED]          --  Sami J. Lehtinen  --           [EMAIL PROTECTED]]
[work:+358 9 85657425][gsm:+358 50 5170 258][http://www.iki.fi/~sjl]
[SSH Communications Security Corp               http://www.ssh.com/]

Reply via email to