From 6c79f788133411076520b9dd47d6727a99e9f4f2 Mon Sep 17 00:00:00 2001 From: Ed Maste Date: Wed, 2 Jul 2014 20:40:59 +0000 Subject: [PATCH] Fix vt(4) detection in kbdcontrol and vidcontrol MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As sc(4) and vt(4) coexist and are both enabled in GENERIC, the existence of a vt(4) sysctl is not sufficient to determine that vt(4) is in use. Reported by: Trond Endrestøl --- usr.sbin/kbdcontrol/kbdcontrol.c | 9 +++++---- usr.sbin/vidcontrol/vidcontrol.c | 9 +++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/usr.sbin/kbdcontrol/kbdcontrol.c b/usr.sbin/kbdcontrol/kbdcontrol.c index d38eda09135..0f927ef3cf0 100644 --- a/usr.sbin/kbdcontrol/kbdcontrol.c +++ b/usr.sbin/kbdcontrol/kbdcontrol.c @@ -146,11 +146,12 @@ static void usage(void) __dead2; static int is_vt4(void) { + char vty_name[4] = ""; + size_t len = sizeof(vty_name); - if (sysctlbyname("kern.vt.deadtimer", NULL, NULL, NULL, 0) == 0) - return (1); - - return (0); + if (sysctlbyname("kern.vty", vty_name, &len, NULL, 0) != 0) + return (0); + return (strcmp(vty_name, "vt") == 0); } static char * diff --git a/usr.sbin/vidcontrol/vidcontrol.c b/usr.sbin/vidcontrol/vidcontrol.c index 2096e2abcbb..32e4de64fbe 100644 --- a/usr.sbin/vidcontrol/vidcontrol.c +++ b/usr.sbin/vidcontrol/vidcontrol.c @@ -216,11 +216,12 @@ usage(void) static int is_vt4(void) { + char vty_name[4] = ""; + size_t len = sizeof(vty_name); - if (sysctlbyname("kern.vt.deadtimer", NULL, NULL, NULL, 0) == 0) - return (1); - - return (0); + if (sysctlbyname("kern.vty", vty_name, &len, NULL, 0) != 0) + return (0); + return (strcmp(vty_name, "vt") == 0); } /*