]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
logind-session: be tolerant if we failed to remove leader from hashmap
authorMike Yuan <me@yhndnzj.com>
Tue, 26 Dec 2023 06:20:36 +0000 (14:20 +0800)
committerMike Yuan <me@yhndnzj.com>
Thu, 4 Jan 2024 08:19:19 +0000 (16:19 +0800)
If something wrong happened before hashmap_put(), session_free()
may be called through gc logic, and the assertion is triggered.

src/login/logind-session.c

index b4277c33f1489d1f2c826bb4909bfc59baadcc53..3b105ab5118f3f5f482a6cc4fc655fa174a2018a 100644 (file)
@@ -93,7 +93,7 @@ static void session_reset_leader(Session *s) {
         if (!pidref_is_set(&s->leader))
                 return;
 
-        assert_se(hashmap_remove_value(s->manager->sessions_by_leader, &s->leader, s));
+        (void) hashmap_remove_value(s->manager->sessions_by_leader, &s->leader, s);
 
         return pidref_done(&s->leader);
 }