diff options
-rw-r--r-- | src/login/logind.c | 8 |
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; |