From: Lukas Nykryn Date: Tue, 24 Sep 2013 14:27:20 +0000 (+0200) Subject: logind: return -EINVAL when PID is wrong X-Git-Tag: v208~58 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=a6dbecc4e2a1b52daef5ba3b8e5ecf322352ffdb logind: return -EINVAL when PID is wrong dbus-send --print-reply --system --dest=org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager.GetUserByPID uint32:0 causes systemd-logind[29843]: Assertion 'pid >= 1' failed at src/login/logind.c:938, function manager_get_user_by_pid(). Aborting. --- diff --git a/src/login/logind.c b/src/login/logind.c index 702382acf..8bf520a2d 100644 --- a/src/login/logind.c +++ b/src/login/logind.c @@ -993,9 +993,11 @@ int manager_get_session_by_pid(Manager *m, pid_t pid, Session **session) { int r; assert(m); - assert(pid >= 1); assert(session); + if (pid < 1) + return -EINVAL; + r = cg_pid_get_unit(pid, &unit); if (r < 0) return r; @@ -1014,9 +1016,11 @@ int manager_get_user_by_pid(Manager *m, pid_t pid, User **user) { int r; assert(m); - assert(pid >= 1); assert(user); + if (pid < 1) + return -EINVAL; + r = cg_pid_get_slice(pid, &unit); if (r < 0) return r;