summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/login/logind.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/login/logind.c b/src/login/logind.c
index dfd657de7..aba93fd15 100644
--- a/src/login/logind.c
+++ b/src/login/logind.c
@@ -416,14 +416,18 @@ static int parse_fdname(const char *fdname, char **session_id, dev_t *dev) {
if (!streq(parts[0], "session"))
return -EINVAL;
+
id = strdup(parts[1]);
if (!id)
return -ENOMEM;
if (!streq(parts[2], "device"))
return -EINVAL;
- r = safe_atou(parts[3], &major) ||
- safe_atou(parts[4], &minor);
+
+ r = safe_atou(parts[3], &major);
+ if (r < 0)
+ return r;
+ r = safe_atou(parts[4], &minor);
if (r < 0)
return r;