main: set umask before creating any files

This avoids a problem when we inherit a non-zero umask from the
initramfs. This would cause /run/systemd to be created with the wrong
mode.
This commit is contained in:
Mike Gilbert 2013-09-26 20:39:41 +02:00 committed by Lennart Poettering
parent 299404a19f
commit 90dc8c2ea2

View file

@ -1265,6 +1265,10 @@ int main(int argc, char *argv[]) {
log_show_color(isatty(STDERR_FILENO) > 0);
/* Disable the umask logic */
if (getpid() == 1)
umask(0);
if (getpid() == 1 && detect_container(NULL) <= 0) {
/* Running outside of a container as PID 1 */
@ -1438,14 +1442,10 @@ int main(int argc, char *argv[]) {
if (serialization)
assert_se(fdset_remove(fds, fileno(serialization)) >= 0);
if (arg_running_as == SYSTEMD_SYSTEM) {
if (arg_running_as == SYSTEMD_SYSTEM)
/* Become a session leader if we aren't one yet. */
setsid();
/* Disable the umask logic */
umask(0);
}
/* Move out of the way, so that we won't block unmounts */
assert_se(chdir("/") == 0);