Merge "popen: stop using _fwalk." am: 49e7b68ac2 am: db64bbbb6e
am: 6f767b5f85

Change-Id: Ibb142d471967876af633566750a5c6592a002bcd
diff --git a/libc/stdio/stdio.cpp b/libc/stdio/stdio.cpp
index d7b69dc..8144e5f 100644
--- a/libc/stdio/stdio.cpp
+++ b/libc/stdio/stdio.cpp
@@ -1169,11 +1169,6 @@
   return (__sfvwrite(fp, &uio) == 0) ? count : ((n - uio.uio_resid) / size);
 }
 
-static int __close_if_popened(FILE* fp) {
-  if (_EXT(fp)->_popen_pid > 0) close(fileno(fp));
-  return 0;
-}
-
 static FILE* __popen_fail(int fds[2]) {
   ErrnoRestorer errno_restorer;
   close(fds[0]);
@@ -1219,9 +1214,6 @@
 
   if (pid == 0) {
     close(fds[parent]);
-    // POSIX says "The popen() function shall ensure that any streams from previous popen() calls
-    // that remain open in the parent process are closed in the new child process."
-    _fwalk(__close_if_popened);
     // dup2 so that the child fd isn't closed on exec.
     if (dup2(fds[child], desired_child_fd) == -1) _exit(127);
     close(fds[child]);