login: add a missing error check for session_set_leader()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 14 Feb 2019 01:59:13 +0000 (10:59 +0900)
committerMichael Biebl <biebl@debian.org>
Sat, 24 Oct 2020 18:44:48 +0000 (19:44 +0100)
session_set_leader() may fail. If it fails, then manager_start_scope()
will trigger assertion.

This may be related to RHBZ#1663704.

(cherry picked from commit fe3ab8458b9c0ead4b3e14ac25b342d8c34376fe)

Gbp-Pq: Name login-add-a-missing-error-check-for-session_set_leader.patch

src/login/logind-dbus.c

index 8ab498fdc297af7e0c022b9fa332f71eb1f78540..b9ea370ec009ab9ccdf95c4440ddc2a8b9e93d9e 100644 (file)
@@ -790,7 +790,9 @@ static int method_create_session(sd_bus_message *message, void *userdata, sd_bus
                 goto fail;
 
         session_set_user(session, user);
-        session_set_leader(session, leader);
+        r = session_set_leader(session, leader);
+        if (r < 0)
+                goto fail;
 
         session->type = t;
         session->class = c;