summaryrefslogtreecommitdiff
path: root/src/userdb
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2021-11-08 17:57:42 +0100
committerLennart Poettering <lennart@poettering.net>2021-11-08 21:42:53 +0100
commit18e94a40b8dc549b2983b7e484171759f929f21b (patch)
tree922c1a602ee16ae78a8cc8595561f7e3bd125eb4 /src/userdb
parent790e3ed3cca2c45fb9332eadb8e35ed14b463bc8 (diff)
downloadsystemd-18e94a40b8dc549b2983b7e484171759f929f21b.tar.gz
userwork: make sure to return correct errors when service is not specified correctly
Fixes: #21215 #21222
Diffstat (limited to 'src/userdb')
-rw-r--r--src/userdb/userwork.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/userdb/userwork.c b/src/userdb/userwork.c
index 63ce7eafe8..1b1a4835e6 100644
--- a/src/userdb/userwork.c
+++ b/src/userdb/userwork.c
@@ -114,7 +114,6 @@ static int build_user_json(Varlink *link, UserRecord *ur, JsonVariant **ret) {
static int userdb_flags_from_service(Varlink *link, const char *service, UserDBFlags *ret) {
assert(link);
- assert(service);
assert(ret);
if (streq_ptr(service, "io.systemd.NameServiceSwitch"))
@@ -153,7 +152,8 @@ static int vl_method_get_user_record(Varlink *link, JsonVariant *parameters, Var
return r;
r = userdb_flags_from_service(link, p.service, &userdb_flags);
- if (r < 0)
+ if (r != 0) /* return value of < 0 means error (as usual); > 0 means 'already processed and replied,
+ * we are done'; == 0 means 'not processed, caller should process now' */
return r;
if (uid_is_valid(p.uid))
@@ -288,7 +288,7 @@ static int vl_method_get_group_record(Varlink *link, JsonVariant *parameters, Va
return r;
r = userdb_flags_from_service(link, p.service, &userdb_flags);
- if (r < 0)
+ if (r != 0)
return r;
if (gid_is_valid(p.gid))
@@ -371,7 +371,7 @@ static int vl_method_get_memberships(Varlink *link, JsonVariant *parameters, Var
return r;
r = userdb_flags_from_service(link, p.service, &userdb_flags);
- if (r < 0)
+ if (r != 0)
return r;
if (p.group_name)