Bläddra i källkod

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 6 år sedan
förälder
incheckning
211b51dab7
1 ändrade filer med 1 tillägg och 1 borttagningar
  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);
     }