From cad93f2996f18c987b3b4b62a5ede762c11338c8 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 14 Jul 2017 18:57:04 +0200 Subject: [PATCH] core, sd-bus, logind: make use of uid_is_valid() in more places --- src/core/execute.c | 8 ++++---- src/libsystemd/sd-bus/bus-creds.c | 2 +- src/login/logind-dbus.c | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/core/execute.c b/src/core/execute.c index 48b8481..f9580a2 100644 --- a/src/core/execute.c +++ b/src/core/execute.c @@ -286,7 +286,7 @@ static int connect_journal_socket(int fd, uid_t uid, gid_t gid) { gid_t oldgid = GID_INVALID; int r; - if (gid != GID_INVALID) { + if (gid_is_valid(gid)) { oldgid = getgid(); r = setegid(gid); @@ -294,7 +294,7 @@ static int connect_journal_socket(int fd, uid_t uid, gid_t gid) { return -errno; } - if (uid != UID_INVALID) { + if (uid_is_valid(uid)) { olduid = getuid(); r = seteuid(uid); @@ -311,11 +311,11 @@ static int connect_journal_socket(int fd, uid_t uid, gid_t gid) { /* If we fail to restore the uid or gid, things will likely fail later on. This should only happen if an LSM interferes. */ - if (uid != UID_INVALID) + if (uid_is_valid(uid)) (void) seteuid(olduid); restore_gid: - if (gid != GID_INVALID) + if (gid_is_valid(gid)) (void) setegid(oldgid); return r; diff --git a/src/libsystemd/sd-bus/bus-creds.c b/src/libsystemd/sd-bus/bus-creds.c index f10592a..a05b421 100644 --- a/src/libsystemd/sd-bus/bus-creds.c +++ b/src/libsystemd/sd-bus/bus-creds.c @@ -584,7 +584,7 @@ _public_ int sd_bus_creds_get_audit_login_uid(sd_bus_creds *c, uid_t *uid) { if (!(c->mask & SD_BUS_CREDS_AUDIT_LOGIN_UID)) return -ENODATA; - if (c->audit_login_uid == UID_INVALID) + if (!uid_is_valid(c->audit_login_uid)) return -ENXIO; *uid = c->audit_login_uid; diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c index e22956b..cd22ff4 100644 --- a/src/login/logind-dbus.c +++ b/src/login/logind-dbus.c @@ -88,7 +88,7 @@ int manager_get_user_from_creds(Manager *m, sd_bus_message *message, uid_t uid, assert(message); assert(ret); - if (uid == UID_INVALID) { + if (!uid_is_valid(uid)) { _cleanup_(sd_bus_creds_unrefp) sd_bus_creds *creds = NULL; /* Note that we get the owner UID of the session, not the actual client UID here! */ @@ -1132,7 +1132,7 @@ static int method_set_user_linger(sd_bus_message *message, void *userdata, sd_bu if (r < 0) return r; - if (uid == UID_INVALID) { + if (!uid_is_valid(uid)) { _cleanup_(sd_bus_creds_unrefp) sd_bus_creds *creds = NULL; /* Note that we get the owner UID of the session, not the actual client UID here! */ -- 2.7.4