From: Lennart Poettering Date: Wed, 2 Jul 2025 14:25:42 +0000 (+0200) Subject: logind: pick up tty info from utmp only for tty sessions X-Git-Tag: v258-rc1~212^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F38034%2Fhead;p=thirdparty%2Fsystemd.git logind: pick up tty info from utmp only for tty sessions Let's tighten the rules for picking up TTY information from utmp: let's do so only for TTY session, nothing else. Apparently people have issues with graphical sessions with certain terminal emulators that install entries in utmp for each emulator window. Alternative for: #38027 --- diff --git a/src/login/logind-utmp.c b/src/login/logind-utmp.c index 8f6914f7250..26ebb35c64e 100644 --- a/src/login/logind-utmp.c +++ b/src/login/logind-utmp.c @@ -59,6 +59,9 @@ int manager_read_utmp(Manager *m) { if (manager_get_session_by_pidref(m, &PIDREF_MAKE_FROM_PID(u->ut_pid), &s) <= 0) continue; + if (s->type != SESSION_TTY) + continue; + if (s->tty_validity == TTY_FROM_UTMP && !streq_ptr(s->tty, t)) { /* This may happen on multiplexed SSH connection (i.e. 'SSH connection sharing'). In * this case PAM and utmp sessions don't match. In such a case let's invalidate the TTY