summaryrefslogtreecommitdiff
path: root/src/login/logind-user-dbus.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2019-04-30 13:48:34 +0200
committerLennart Poettering <lennart@poettering.net>2019-05-24 15:05:27 +0200
commit77c45ce3369f95f1f143830de460639619489ac0 (patch)
tree7b6f3a923dabd9d7c51e29e4cc727c5b5f2e4cb0 /src/login/logind-user-dbus.c
parented179418aeb550138d308263eb4742683282c727 (diff)
downloadsystemd-77c45ce3369f95f1f143830de460639619489ac0.tar.gz
systemd-77c45ce3369f95f1f143830de460639619489ac0.tar.bz2
systemd-77c45ce3369f95f1f143830de460639619489ac0.zip
logind: convert ENXIO into 0, to signal 'not found' cleanly
Diffstat (limited to 'src/login/logind-user-dbus.c')
-rw-r--r--src/login/logind-user-dbus.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/login/logind-user-dbus.c b/src/login/logind-user-dbus.c
index fcaeba13f6..ca3ea7e432 100644
--- a/src/login/logind-user-dbus.c
+++ b/src/login/logind-user-dbus.c
@@ -245,6 +245,10 @@ int user_object_find(sd_bus *bus, const char *path, const char *interface, void
return 0;
r = manager_get_user_from_creds(m, message, UID_INVALID, error, &user);
+ if (r == -ENXIO) {
+ sd_bus_error_free(error);
+ return 0;
+ }
if (r < 0)
return r;
} else {
@@ -305,10 +309,11 @@ int user_node_enumerator(sd_bus *bus, const char *path, void *userdata, char ***
message = sd_bus_get_current_message(bus);
if (message) {
_cleanup_(sd_bus_creds_unrefp) sd_bus_creds *creds = NULL;
- uid_t uid;
r = sd_bus_query_sender_creds(message, SD_BUS_CREDS_OWNER_UID|SD_BUS_CREDS_AUGMENT, &creds);
if (r >= 0) {
+ uid_t uid;
+
r = sd_bus_creds_get_owner_uid(creds, &uid);
if (r >= 0) {
user = hashmap_get(m->users, UID_TO_PTR(uid));