diff options
author | Petr Štetiar <ynezz@true.cz> | 2021-03-22 18:22:14 +0100 |
---|---|---|
committer | Petr Štetiar <ynezz@true.cz> | 2021-03-22 18:22:14 +0100 |
commit | 41664054b8b1bc19d842421c49d1b4d612ff8297 (patch) | |
tree | caa5be02ef0a1032b4f772d1a101dd794f47bcf0 | |
parent | 9ef886819dd48303d8ced4cdbc9afbf32682535c (diff) | |
download | ubox-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.c | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -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(); |