]> granicus.if.org Git - sudo/commitdiff
Remove ttyname() fall back code on systems where we can query the
authorTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 31 Jan 2013 16:10:23 +0000 (11:10 -0500)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 31 Jan 2013 16:10:23 +0000 (11:10 -0500)
kernel for the tty device via /proc or sysctl().  If there is no
controlling tty, it is better to just treat the tty as unknown
rather than to blindly use what is hooked up to std{in,out,err}.

--HG--
branch : 1.7

ttyname.c

index c116eeab869b7b45d4f86919ad1823acafb3caf5..fa67d39a2c55b0445e352bbdf6ddb252443d78eb 100644 (file)
--- a/ttyname.c
+++ b/ttyname.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012 Todd C. Miller <Todd.Miller@courtesan.com>
+ * Copyright (c) 2012-2013 Todd C. Miller <Todd.Miller@courtesan.com>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -368,14 +368,6 @@ get_process_ttyname()
     }
     efree(ki_proc);
 
-    /* If all else fails, fall back on ttyname(). */
-    if (tty == NULL) {
-       if ((tty = ttyname(STDIN_FILENO)) != NULL ||
-           (tty = ttyname(STDOUT_FILENO)) != NULL ||
-           (tty = ttyname(STDERR_FILENO)) != NULL)
-           tty = estrdup(tty);
-    }
-
     return tty;
 }
 #elif defined(HAVE_STRUCT_PSINFO_PR_TTYDEV)
@@ -407,14 +399,6 @@ get_process_ttyname()
        }
     }
 
-    /* If all else fails, fall back on ttyname(). */
-    if (tty == NULL) {
-       if ((tty = ttyname(STDIN_FILENO)) != NULL ||
-           (tty = ttyname(STDOUT_FILENO)) != NULL ||
-           (tty = ttyname(STDERR_FILENO)) != NULL)
-           tty = estrdup(tty);
-    }
-
     return tty;
 }
 #elif defined(__linux__)
@@ -432,7 +416,7 @@ get_process_ttyname()
     ssize_t len;
     int i;
 
-    /* Try to determine the tty from pr_ttydev in /proc/pid/psinfo. */
+    /* Try to determine the tty from tty_nr in /proc/pid/stat. */
     for (i = 0; tty == NULL && i < 2; i++) {
        FILE *fp;
        char path[PATH_MAX];
@@ -460,14 +444,6 @@ get_process_ttyname()
     }
     efree(line);
 
-    /* If all else fails, fall back on ttyname(). */
-    if (tty == NULL) {
-       if ((tty = ttyname(STDIN_FILENO)) != NULL ||
-           (tty = ttyname(STDOUT_FILENO)) != NULL ||
-           (tty = ttyname(STDERR_FILENO)) != NULL)
-           tty = estrdup(tty);
-    }
-
     return tty;
 }
 #else