diff options
Diffstat (limited to 'libc/bionic/pipe.cpp')
-rw-r--r-- | libc/bionic/pipe.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/libc/bionic/pipe.cpp b/libc/bionic/pipe.cpp index a81afe8e0..f1976568f 100644 --- a/libc/bionic/pipe.cpp +++ b/libc/bionic/pipe.cpp @@ -28,6 +28,24 @@ #include <unistd.h> +#include "private/bionic_fdtrack.h" + +extern "C" int __pipe2(int pipefd[2], int flags); + int pipe(int pipefd[2]) { - return pipe2(pipefd, 0); + int rc = __pipe2(pipefd, 0); + if (rc == 0) { + FDTRACK_CREATE(pipefd[0]); + FDTRACK_CREATE(pipefd[1]); + } + return rc; +} + +int pipe2(int pipefd[2], int flags) { + int rc = __pipe2(pipefd, flags); + if (rc == 0) { + FDTRACK_CREATE(pipefd[0]); + FDTRACK_CREATE(pipefd[1]); + } + return rc; } |