summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Nykryn <lnykryn@redhat.com>2013-09-24 16:27:20 +0200
committerLukas Nykryn <lnykryn@redhat.com>2013-09-24 17:00:33 +0200
commita6dbecc4e2a1b52daef5ba3b8e5ecf322352ffdb (patch)
tree3bcf8d161cadfd6875cddff3c8a5c28cd1bd309f
parentee9c9500ab13c1093fc3feaf2aa5a0d330d0bfad (diff)
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.
-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 702382acff..8bf520a2db 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;