From: Michal Schmidt Date: Fri, 15 Jun 2012 20:22:24 +0000 (+0200) Subject: logind: more robust handling of VT-less systems X-Git-Tag: v186~153 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=cdc564d27f71f82457e96e9b237564fc6e8e84c9;p=elogind.git logind: more robust handling of VT-less systems Restore the check that was removed in commit 74afee9c. Its removal caused a regression on some s390x systems where for whatever reason the device node /dev/tty0 exists and makes the preceding access() check pass. --- diff --git a/src/login/logind.c b/src/login/logind.c index 62f7914fe..1eb745adc 100644 --- a/src/login/logind.c +++ b/src/login/logind.c @@ -1244,6 +1244,12 @@ static int manager_connect_console(Manager *m) { m->console_active_fd = open("/sys/class/tty/tty0/active", O_RDONLY|O_NOCTTY|O_CLOEXEC); if (m->console_active_fd < 0) { + + /* On some systems the device node /dev/tty0 may exist + * even though /sys/class/tty/tty0 does not. */ + if (errno == ENOENT) + return 0; + log_error("Failed to open /sys/class/tty/tty0/active: %m"); return -errno; }