From: Todd C. Miller Date: Wed, 11 Jan 2012 19:09:16 +0000 (-0500) Subject: Add debug warning if KERN_PROC sysctl fails or devname() can't X-Git-Tag: SUDO_1_8_4~61^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f7b04c32aeb7afaf2934e27977031d7314a14257;p=sudo Add debug warning if KERN_PROC sysctl fails or devname() can't resolve the tty device to a name. --- diff --git a/src/sudo.c b/src/sudo.c index 025edb980..4124e8ffe 100644 --- a/src/sudo.c +++ b/src/sudo.c @@ -472,8 +472,18 @@ get_process_tty(void) ki_proc = erealloc(ki_proc, size); rc = sysctl(mib, sudo_kp_namelen, ki_proc, &size, NULL, 0); } while (rc == -1 && errno == ENOMEM); - if (rc != -1) + if (rc != -1) { tty = devname(ki_proc->sudo_kp_tdev, S_IFCHR); + if (*tty != '/') { + sudo_debug_printf(SUDO_DEBUG_WARN, + "unable to map device number %u to name: %s", + ki_proc->sudo_kp_tdev, tty); + tty = NULL; + } + } else { + sudo_debug_printf(SUDO_DEBUG_WARN, + "unable to resolve tty via KERN_PROC: %s", strerror(errno)); + } } /* If all else fails, fall back on ttyname(). */ @@ -518,7 +528,7 @@ get_process_tty(void) debug_return_str(tty); } -#endif /* HAVE_STRUCT_KINFO_PROC_KI_TDEV */ +#endif /* sudo_kp_tdev */ /* * Return user information as an array of name=value pairs.