[systemd-commits] src/login

Lukas Nykryn lnykryn at kemper.freedesktop.org
Tue Sep 24 08:02:24 PDT 2013


 src/login/logind.c |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

New commits:
commit a6dbecc4e2a1b52daef5ba3b8e5ecf322352ffdb
Author: Lukas Nykryn <lnykryn at redhat.com>
Date:   Tue Sep 24 16:27:20 2013 +0200

    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 702382a..8bf520a 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;



More information about the systemd-commits mailing list