diff options
Diffstat (limited to 'src/process/posix_spawn.c')
| -rw-r--r-- | src/process/posix_spawn.c | 5 | 
1 files changed, 3 insertions, 2 deletions
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);  | 
