]> granicus.if.org Git - sudo/commitdiff
For legacy utmp, strip the /dev/ prefix before trying to determine
authorTodd C. Miller <Todd.Miller@courtesan.com>
Tue, 15 Mar 2011 19:51:44 +0000 (15:51 -0400)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Tue, 15 Mar 2011 19:51:44 +0000 (15:51 -0400)
slot since the ttys file does not include the /dev/ prefix.

src/utmp.c

index f557703cea5519428fa885318a98457cbb99c565..e5b334d79a851206455a71091bfc84ca31c5e083 100644 (file)
@@ -259,6 +259,10 @@ utmp_login(const char *from_line, const char *to_line, int ttyfd)
     int slot, rval = FALSE;
     FILE *fp;
 
+    /* Strip off /dev/ prefix from line as needed. */
+    if (strncmp(to_line, _PATH_DEV, sizeof(_PATH_DEV) - 1) == 0)
+       to_line += sizeof(_PATH_DEV) - 1;
+
     /* Find slot for new entry. */
     slot = utmp_slot(to_line, ttyfd);
     if (slot <= 0)
@@ -267,9 +271,6 @@ utmp_login(const char *from_line, const char *to_line, int ttyfd)
     if ((fp = fopen(_PATH_UTMP, "r+")) == NULL)
        goto done;
 
-    /* Strip off /dev/ prefix from line as needed. */
-    if (strncmp(to_line, _PATH_DEV, sizeof(_PATH_DEV) - 1) == 0)
-       to_line += sizeof(_PATH_DEV) - 1;
     if (from_line != NULL) {
        if (strncmp(from_line, _PATH_DEV, sizeof(_PATH_DEV) - 1) == 0)
            from_line += sizeof(_PATH_DEV) - 1;