OSDN Git Service

prevent dup2 action for posix_spawn internal pipe fd
[android-x86/external-musl-libc.git] / src / process / posix_spawn.c
index 5aaf829..306faa0 100644 (file)
@@ -101,6 +101,10 @@ static int child(void *args_vp)
                                break;
                        case FDOP_DUP2:
                                fd = op->srcfd;
+                               if (fd == p) {
+                                       ret = -EBADF;
+                                       goto fail;
+                               }
                                if (fd != op->fd) {
                                        if ((ret=__sys_dup2(fd, op->fd))<0)
                                                goto fail;