]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
logind: use manager_get_session_by_leader in manager_get_session_by_pidref 38027/head
authorMyrrh Periwinkle <myrrhperiwinkle@qtmlabs.xyz>
Wed, 2 Jul 2025 15:18:33 +0000 (22:18 +0700)
committerMyrrh Periwinkle <myrrhperiwinkle@qtmlabs.xyz>
Thu, 3 Jul 2025 02:16:22 +0000 (09:16 +0700)
src/login/logind-core.c

index 2f8c7824d2ada6fa1b7d17cde8e6c09232ec273a..1d88ec966131ee8ec47b75fa1046c8676f0e11b7 100644 (file)
@@ -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;