log: never log into foreign fd #2 in PID 1 or its pre-execve() children
Fixes: #5401
This commit is contained in:
+9
-2
@@ -1414,10 +1414,17 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
log_set_upgrade_syslog_to_journal(true);
|
||||
|
||||
/* Disable the umask logic */
|
||||
if (getpid() == 1)
|
||||
if (getpid() == 1) {
|
||||
/* Disable the umask logic */
|
||||
umask(0);
|
||||
|
||||
/* Always reopen /dev/console when running as PID 1 or one of its pre-execve() children. This is
|
||||
* important so that we never end up logging to any foreign stderr, for example if we have to log in a
|
||||
* child process right before execve()'ing the actual binary, at a point in time where socket
|
||||
* activation stderr/stdout area already set up. */
|
||||
log_set_always_reopen_console(true);
|
||||
}
|
||||
|
||||
if (getpid() == 1 && detect_container() <= 0) {
|
||||
|
||||
/* Running outside of a container as PID 1 */
|
||||
|
||||
Reference in New Issue
Block a user