git: libc - Fix more popen() issues

Matthew Dillon dillon at
Thu Jul 28 10:28:32 PDT 2016

commit 6be058eebc5e111cbd6a27d868d172241f95cdfb
Author: Matthew Dillon <dillon at>
Date:   Thu Jul 28 10:03:08 2016 -0700

    libc - Fix more popen() issues
    * Fix a file descriptor leak between popen() and pclose() in a threaded
      environment.  The control structure is removed from the list, then the
      list is unlocked, then the file is closed.  This can race a popen
      inbetween the unlock and the closure.
    * Do not use fileno() inside vfork, it is a complex function in a threaded
      environment which could lead to corruption since the vfork()'s lwp id may
      clash with one from the parent process.

Summary of changes:
 lib/libc/gen/popen.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

DragonFly BSD source repository

More information about the Commits mailing list