summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authoremaste <emaste@FreeBSD.org>2015-04-20 17:43:55 +0000
committeremaste <emaste@FreeBSD.org>2015-04-20 17:43:55 +0000
commit4f24a027f8b28c1a9960ed43d66b8929a1e4542a (patch)
treed44a6faf01fbfcc8bbf7b5d1c19b4e27befec2a3 /usr.sbin
parent8da3c52e6bf9c53a921feb38b55d5d6bb0d91106 (diff)
downloadFreeBSD-src-4f24a027f8b28c1a9960ed43d66b8929a1e4542a.zip
FreeBSD-src-4f24a027f8b28c1a9960ed43d66b8929a1e4542a.tar.gz
vidcontrol: skip invalid video modes returned by vt(4)
vt(4) has a stub CONS_MODEINFO ioctl that does not provide any data but returns success. This needs to be fixed in the kernel, but address it in vidcontrol(1) as well in case it's run on an older kernel. Reviewed by: bde Sponsored by: The FreeBSD Foundation
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/vidcontrol/vidcontrol.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/usr.sbin/vidcontrol/vidcontrol.c b/usr.sbin/vidcontrol/vidcontrol.c
index e1981f3..cbf8f47 100644
--- a/usr.sbin/vidcontrol/vidcontrol.c
+++ b/usr.sbin/vidcontrol/vidcontrol.c
@@ -1085,12 +1085,16 @@ show_mode_info(void)
printf("---------------------------------------"
"---------------------------------------\n");
+ memset(&_info, 0, sizeof(_info));
for (mode = 0; mode <= M_VESA_MODE_MAX; ++mode) {
_info.vi_mode = mode;
if (ioctl(0, CONS_MODEINFO, &_info))
continue;
if (_info.vi_mode != mode)
continue;
+ if (_info.vi_width == 0 && _info.vi_height == 0 &&
+ _info.vi_cwidth == 0 && _info.vi_cheight == 0)
+ continue;
printf("%3d (0x%03x)", mode, mode);
printf(" 0x%08x", _info.vi_flags);
OpenPOWER on IntegriCloud