From e523d9e9c40bd25fb55e589de7eec323dcfd37ae Mon Sep 17 00:00:00 2001 From: Myrrh Periwinkle Date: Wed, 2 Jul 2025 22:18:33 +0700 Subject: [PATCH] logind: use manager_get_session_by_leader in manager_get_session_by_pidref --- src/login/logind-core.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) 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; -- 2.47.3