logind: pick up tty info from utmp only for tty sessions (#38034)
Alternative for: #38027
This commit is contained in:
@@ -43,7 +43,7 @@ int manager_read_utmp(Manager *m) {
|
||||
if (!pid_is_valid(u->ut_pid))
|
||||
continue;
|
||||
|
||||
t = strndup(u->ut_line, sizeof(u->ut_line));
|
||||
t = memdup_suffix0(u->ut_line, sizeof(u->ut_line));
|
||||
if (!t)
|
||||
return log_oom();
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user