瀏覽代碼

fix double errno-decoding in the old-kernel fallback path of pipe2

this bug seems to have caused any failure by pipe2 on such systems to
set errno to 1, rather than the proper error code.
Rich Felker 12 年之前
父節點
當前提交
bcc20d2b94
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      src/unistd/pipe2.c

+ 1 - 1
src/unistd/pipe2.c

@@ -8,7 +8,7 @@ int pipe2(int fd[2], int flag)
 	if (!flag) return syscall(SYS_pipe, fd);
 	int ret = __syscall(SYS_pipe2, fd, flag);
 	if (ret != -ENOSYS) return __syscall_ret(ret);
-	ret = syscall(SYS_pipe, fd);
+	ret = __syscall(SYS_pipe, fd);
 	if (ret) return __syscall_ret(ret);
 	if (flag & O_CLOEXEC) {
 		fcntl(fd[0], F_SETFD, FD_CLOEXEC);