summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoremaste <emaste@FreeBSD.org>2014-07-02 20:40:59 +0000
committeremaste <emaste@FreeBSD.org>2014-07-02 20:40:59 +0000
commit25f958427184cf6389b5612ba2d9756d2e3bfe00 (patch)
tree765a2ab9cd6571dff515687d715dd8af995cd136
parent06ba4514995599e2268f4583f114ad7c94a63e9c (diff)
downloadFreeBSD-src-25f958427184cf6389b5612ba2d9756d2e3bfe00.zip
FreeBSD-src-25f958427184cf6389b5612ba2d9756d2e3bfe00.tar.gz
Fix vt(4) detection in kbdcontrol and vidcontrol
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
-rw-r--r--usr.sbin/kbdcontrol/kbdcontrol.c9
-rw-r--r--usr.sbin/vidcontrol/vidcontrol.c9
2 files changed, 10 insertions, 8 deletions
diff --git a/usr.sbin/kbdcontrol/kbdcontrol.c b/usr.sbin/kbdcontrol/kbdcontrol.c
index d38eda0..0f927ef 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 2096e2a..32e4de6 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);
}
/*
OpenPOWER on IntegriCloud