--- ./openvt/openvt.c.orig 2003-08-16 16:44:04.000000000 +0300 +++ ./openvt/openvt.c 2003-08-16 16:42:01.000000000 +0300 @@ -100,18 +100,18 @@ } consfd = getfd(); - if (consfd < 0) { - fprintf(stderr, - _("Couldnt get a file descriptor referring to the console\n")); - return(2); - } - if (ioctl(consfd, VT_GETSTATE, &vtstat) < 0) { + if (consfd >= 0 && ioctl(consfd, VT_GETSTATE, &vtstat) < 0) { perror("openvt: VT_GETSTATE"); return(4); } if (vtno == -1) { + if (consfd < 0) { + fprintf(stderr, + _("Couldnt get a file descriptor referring to the console\n")); + return(2); + } if ((ioctl(consfd, VT_OPENQRY, &vtno) < 0) || (vtno == -1)) { perror("openvt: VT_OPENQRY"); fprintf(stderr, _("openvt: cannot find a free vt\n")); @@ -267,7 +267,7 @@ if ( do_wait ) { wait(NULL); - if (show) { /* Switch back... */ + if (show && consfd >= 0) { /* Switch back... */ if (ioctl(consfd, VT_ACTIVATE, vtstat.v_active)) { perror("VT_ACTIVATE"); return 8;