[systemd-commits] src/login

Michal Schmidt michich at kemper.freedesktop.org
Fri Jun 15 13:35:35 PDT 2012


 src/login/logind.c |    6 ++++++
 1 file changed, 6 insertions(+)

New commits:
commit cdc564d27f71f82457e96e9b237564fc6e8e84c9
Author: Michal Schmidt <mschmidt at redhat.com>
Date:   Fri Jun 15 22:22:24 2012 +0200

    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 62f7914..1eb745a 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;
         }



More information about the systemd-commits mailing list