logind: fix user_object_find()
authorLennart Poettering <lennart@poettering.net>
Thu, 4 Jan 2018 10:36:35 +0000 (11:36 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 5 Jan 2018 12:59:12 +0000 (13:59 +0100)
The logic was completely borked since
e4d2984bf8514ab576a66d5ac1f1cde746bb32a3, correct that.

CID #1384234

src/login/logind-user-dbus.c

index 9fca5ce..d5d086c 100644 (file)
@@ -288,13 +288,13 @@ int user_object_find(sd_bus *bus, const char *path, const char *interface, void
                         return 0;
 
                 r = parse_uid(p, &uid);
-        }
-        if (r < 0)
-                return 0;
+                if (r < 0)
+                        return 0;
 
-        user = hashmap_get(m->users, UID_TO_PTR(uid));
-        if (!user)
-                return 0;
+                user = hashmap_get(m->users, UID_TO_PTR(uid));
+                if (!user)
+                        return 0;
+        }
 
         *found = user;
         return 1;