logind: do not fail creating a session when request is not from a unit
When running inside an LXC container the 'su' process will not be part of any unit or slice. manager_get_user_by_pid() which was used until v255 (included) does not fail if it cannot find a unit/slice, but simply returns 'not found'. Do the same in manager_get_session_by_pidref(). This was not detected as Semaphore CI does not reboot the testbed before the logind test, so the session is started by the old logind from the base distro, instead of the one being tested. Follow-up for8494f562c8Follow-up for5099a50d43Fixes https://github.com/systemd/systemd/issues/32929
This commit is contained in:
@@ -371,10 +371,8 @@ int manager_get_session_by_pidref(Manager *m, const PidRef *pid, Session **ret)
|
||||
return r;
|
||||
} else {
|
||||
r = cg_pidref_get_unit(pid, &unit);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
s = hashmap_get(m->session_units, unit);
|
||||
if (r >= 0)
|
||||
s = hashmap_get(m->session_units, unit);
|
||||
}
|
||||
|
||||
if (ret)
|
||||
|
||||
Reference in New Issue
Block a user