From: Zbigniew Jędrzejewski-Szmek Date: Wed, 9 May 2018 23:34:33 +0000 (+0200) Subject: logind: fix borked r check X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=3ffe330ef2bb6d5ba29a7e700056354e81b847e7;p=elogind.git logind: fix borked r check CID #1390947, #1390952. --- 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;