chiark / gitweb /
logind: return -EINVAL when PID is wrong
authorLukas Nykryn <lnykryn@redhat.com>
Tue, 24 Sep 2013 14:27:20 +0000 (16:27 +0200)
committerLukas Nykryn <lnykryn@redhat.com>
Tue, 24 Sep 2013 15:00:33 +0000 (17:00 +0200)
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.

src/login/logind.c

index 702382acff4ac2633ddeca18a4962edb3515c8e4..8bf520a2db63d2b27d562c7088c71072ffe6bb92 100644 (file)
@@ -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;