]> git.ipfire.org Git - thirdparty/systemd.git/commit
logind: Save the user’s state when a session enters SESSION_ACTIVE 58/head
authorPhilip Withnall <philip.withnall@collabora.co.uk>
Tue, 2 Jun 2015 13:17:10 +0000 (14:17 +0100)
committerPhilip Withnall <philip.withnall@collabora.co.uk>
Tue, 2 Jun 2015 13:24:46 +0000 (14:24 +0100)
commit41dfeaa194c18de49706b5cecf4e53accd12b7f6
tree9590d172c340429b21fbfa187a9dac7fd39f5343
parent80979f1ce4dadf797a42e85a97dc10960c1f6509
logind: Save the user’s state when a session enters SESSION_ACTIVE

When (for example) switching from X11 to a new VT and logging in there,
creating a new session, the user state file (/run/systemd/users/$uid) is
not updated after the session becomes active. The latest time it is
saved is when the session is in SESSION_OPENING.

This results in a /run/systemd/users/$uid file which contains
STATE=online for the current user on the current active VT, which is
obviously wrong.

As functions like sd_uid_get_state() use this file to get the user’s
state, this could result in things like PolicyKit making incorrect
decisions about the user’s state. (See
https://bugs.freedesktop.org/show_bug.cgi?id=76358.)

Fix this by re-saving the state for a session’s user after completing
the state_job for that session.

https://bugs.freedesktop.org/show_bug.cgi?id=90818
src/login/logind-dbus.c