if (r < 0)
return r;
- if (setgid(gid) < 0)
+ if (getegid() != uid && setgid(gid) < 0)
return -errno;
- if (setuid(uid) < 0)
+ if (geteuid() != gid && setuid(uid) < 0)
return -errno; // should never happen
return 0;
{
sd_notify(0, "READY=1");
- int r = reset_self_privileges();
- if (r < 0)
- return r;
-
//create files after resetting self privileges
list_foreach(data->logfile_configs, server, parse_logfile_config);
signal(SIGPIPE, SIG_IGN);
+ r = reset_self_privileges();
+ if (r < 0) {
+ printf("Unable to drop privileges to build-time defaults (%s). Exiting.\n", strerror(-r));
+ return DLOG_EXIT_ERR_RUNTIME;
+ }
+
struct logger_config_data data;
if ((r = prepare_config_data(&data, argc, argv)) != 0) {
if (r < 0) {