Quellcode durchsuchen

CEventLoop: Create the wake pipe with O_CLOEXEC

This ensures the pipe fds don't leak into child processes.
This manifested as the Shell (and all processes started
from the shell) having two mysterious FIFOs open. This
was happening because of the Terminal, which the shell
was spawned form, leaking its CEventLoop wake pipe fds.
Sergey Bugaev vor 6 Jahren
Ursprung
Commit
211b51dab7
1 geänderte Dateien mit 1 neuen und 1 gelöschten Zeilen
  1. 1 1
      Libraries/LibCore/CEventLoop.cpp

+ 1 - 1
Libraries/LibCore/CEventLoop.cpp

@@ -36,7 +36,7 @@ CEventLoop::CEventLoop()
 
     if (!s_main_event_loop) {
         s_main_event_loop = this;
-        int rc = pipe(s_wake_pipe_fds);
+        int rc = pipe2(s_wake_pipe_fds, O_CLOEXEC);
         ASSERT(rc == 0);
         s_event_loop_stack->append(this);
     }