summaryrefslogtreecommitdiff
path: root/src/login/logind-dbus.c
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2019-02-14 10:59:13 +0900
committerLennart Poettering <lennart@poettering.net>2019-02-15 11:29:34 +0100
commitfe3ab8458b9c0ead4b3e14ac25b342d8c34376fe (patch)
treebea5f2c65719e427ac01237e495566001f3e9bad /src/login/logind-dbus.c
parent068625569af05fc338a4934cd653af23077a8332 (diff)
downloadsystemd-fe3ab8458b9c0ead4b3e14ac25b342d8c34376fe.tar.gz
login: add a missing error check for session_set_leader()
session_set_leader() may fail. If it fails, then manager_start_scope() will trigger assertion. This may be related to RHBZ#1663704.
Diffstat (limited to 'src/login/logind-dbus.c')
-rw-r--r--src/login/logind-dbus.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
index 8ab498fdc2..b9ea370ec0 100644
--- a/src/login/logind-dbus.c
+++ b/src/login/logind-dbus.c
@@ -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;