From: Myrrh Periwinkle Date: Wed, 2 Jul 2025 15:18:33 +0000 (+0700) Subject: logind: use manager_get_session_by_leader in manager_get_session_by_pidref X-Git-Tag: v258-rc1~198^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e523d9e9c40bd25fb55e589de7eec323dcfd37ae;p=thirdparty%2Fsystemd.git logind: use manager_get_session_by_leader in manager_get_session_by_pidref --- diff --git a/src/login/logind-core.c b/src/login/logind-core.c index 2f8c7824d2a..1d88ec96613 100644 --- a/src/login/logind-core.c +++ b/src/login/logind-core.c @@ -368,7 +368,7 @@ int manager_process_button_device(Manager *m, sd_device *d) { int manager_get_session_by_pidref(Manager *m, const PidRef *pid, Session **ret) { _cleanup_free_ char *unit = NULL; - Session *s; + Session *s = NULL; int r; assert(m); @@ -376,16 +376,13 @@ int manager_get_session_by_pidref(Manager *m, const PidRef *pid, Session **ret) if (!pidref_is_set(pid)) return -EINVAL; - s = hashmap_get(m->sessions_by_leader, pid); - if (s) { - r = pidref_verify(pid); - if (r < 0) - return r; - } else { - r = cg_pidref_get_unit(pid, &unit); - if (r >= 0) - s = hashmap_get(m->session_units, unit); - } + r = manager_get_session_by_leader(m, pid, ret); + if (r != 0) + return r; + + r = cg_pidref_get_unit(pid, &unit); + if (r >= 0) + s = hashmap_get(m->session_units, unit); if (ret) *ret = s;