diff --git a/src/process/posix_spawn.c b/src/process/posix_spawn.c index 5aaf829d..306faa05 100644 --- a/src/process/posix_spawn.c +++ b/src/process/posix_spawn.c @@ -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;