]> granicus.if.org Git - sudo/commitdiff
In Solaris 11, /dev/pts under the "dev" filesystem, not "devices".
authorTodd C. Miller <Todd.Miller@courtesan.com>
Wed, 23 May 2012 16:54:00 +0000 (12:54 -0400)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Wed, 23 May 2012 16:54:00 +0000 (12:54 -0400)
Update tty_is_devpts() to match so we can determine when the tty has
been reused.

--HG--
branch : 1.7

check.c

diff --git a/check.c b/check.c
index 2b3ee053c7a637807a5188993423680c9af04f22..f1d2d8bd8386d89d0696fba08caf1e907fa1f84b 100644 (file)
--- a/check.c
+++ b/check.c
@@ -681,9 +681,9 @@ remove_timestamp(remove)
 }
 
 /*
- * Returns TRUE if tty lives on a devpts or /devices filesystem, else FALSE.
- * Unlike most filesystems, the ctime of devpts nodes is not updated when
- * the device node is written to, only when the inode's status changes,
+ * Returns TRUE if tty lives on a devpts, /dev or /devices filesystem, else
+ * FALSE.  Unlike most filesystems, the ctime of devpts nodes is not updated
+ * when the device node is written to, only when the inode's status changes,
  * typically via the chmod, chown, link, rename, or utimes system calls.
  * Since the ctime is "stable" in this case, we can stash it the tty ticket
  * file and use it to determine whether the tty ticket file is stale.
@@ -708,7 +708,7 @@ tty_is_devpts(tty)
     struct statvfs sfs;
 
     if (statvfs(tty, &sfs) == 0) {
-       if (strcmp(sfs.f_fstr, "devices") == 0)
+       if (strcmp(sfs.f_fstr, "dev") == 0 || strcmp(sfs.f_fstr, "devices") == 0)
            retval = TRUE;
     }
 #endif /* __linux__ */