summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Štetiar <ynezz@true.cz>2021-03-22 18:22:14 +0100
committerPetr Štetiar <ynezz@true.cz>2021-03-22 18:22:14 +0100
commit41664054b8b1bc19d842421c49d1b4d612ff8297 (patch)
treecaa5be02ef0a1032b4f772d1a101dd794f47bcf0
parent9ef886819dd48303d8ced4cdbc9afbf32682535c (diff)
downloadubox-41664054b8b1bc19d842421c49d1b4d612ff8297.tar.gz
logd: fix ignored return values in set{gid,uid}
Ubuntu 18.05 with gcc-7.5 yields following error: ubox/log/logd.c:263:3: error: ignoring return value of ‘setuid’, declared with attribute warn_unused_result [-Werror=unused-result] setuid(p->pw_uid); ^~~~~~~~~~~~~~~~~ ubox/log/logd.c:264:3: error: ignoring return value of ‘setgid’, declared with attribute warn_unused_result [-Werror=unused-result] setgid(p->pw_gid); ^~~~~~~~~~~~~~~~~ Fixes: 9ef886819dd4 ("logd: self-degrade to 'logd' user after opening pipes") Signed-off-by: Petr Štetiar <ynezz@true.cz>
-rw-r--r--log/logd.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/log/logd.c b/log/logd.c
index 7d53139..5d6c458 100644
--- a/log/logd.c
+++ b/log/logd.c
@@ -260,8 +260,15 @@ main(int argc, char **argv)
ubus_auto_connect(&conn);
p = getpwnam("logd");
if (p) {
- setuid(p->pw_uid);
- setgid(p->pw_gid);
+ if (setuid(p->pw_uid) < 0) {
+ fprintf(stderr, "setuid() failed: %s\n", strerror(errno));
+ exit(1);
+ }
+
+ if (setgid(p->pw_gid) < 0) {
+ fprintf(stderr, "setgid() failed: %s\n", strerror(errno));
+ exit(1);
+ }
}
uloop_run();
log_shutdown();