]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core: run env generators with non-zero umask
authorLennart Poettering <lennart@poettering.net>
Tue, 20 Nov 2018 18:14:24 +0000 (19:14 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 20 Nov 2018 22:35:04 +0000 (23:35 +0100)
For PID 1 we adjust the umask to 0, but generators should not run that
way, given that they might be implemented as shell scripts and such.
Let's hence explicitly adjust the umask for them.

We already do this for unit generators. Let's do this for env
generators, too.

src/core/manager.c

index f4fdd91c2c41c4033f1ed0704032ffc0b3c2cd04..e2de1c84b91c1face2dd88c8849522451bd4be69 100644 (file)
@@ -3813,6 +3813,7 @@ static int manager_run_environment_generators(Manager *m) {
                 [STDOUT_COLLECT] = &tmp,
                 [STDOUT_CONSUME] = &m->transient_environment,
         };
+        int r;
 
         if (MANAGER_IS_TEST_RUN(m) && !(m->test_run_flags & MANAGER_TEST_RUN_ENV_GENERATORS))
                 return 0;
@@ -3822,7 +3823,10 @@ static int manager_run_environment_generators(Manager *m) {
         if (!generator_path_any(paths))
                 return 0;
 
-        return execute_directories(paths, DEFAULT_TIMEOUT_USEC, gather_environment, args, NULL, m->transient_environment);
+        RUN_WITH_UMASK(0022)
+                r = execute_directories(paths, DEFAULT_TIMEOUT_USEC, gather_environment, args, NULL, m->transient_environment);
+
+        return r;
 }
 
 static int manager_run_generators(Manager *m) {