X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=src%2Fprocess%2Fposix_spawn.c;h=b1a9fbde52c9aafc8fe8a8725bc4439b3018a311;hp=59f4a8bba2479b8749ccb69e0345f8bceecccc4b;hb=f48832ee15027763826c8a7ff9eeed3fc06bb499;hpb=dd45edb5ff6198493edf1315d3e4e6ffc7b96447 diff --git a/src/process/posix_spawn.c b/src/process/posix_spawn.c index 59f4a8bb..b1a9fbde 100644 --- a/src/process/posix_spawn.c +++ b/src/process/posix_spawn.c @@ -51,10 +51,11 @@ int __posix_spawnx(pid_t *res, const char *path, __syscall(SYS_setuid, __syscall(SYS_getuid)) )) _exit(127); - if (fa) { + if (fa && fa->__actions) { struct fdop *op; int ret, fd; - for (op = fa->__actions; op; op = op->next) { + for (op = fa->__actions; op->next; op = op->next); + for (; op; op = op->prev) { switch(op->cmd) { case FDOP_CLOSE: ret = __syscall(SYS_close, op->fd);