fix missing errno from exec failure in posix_spawn
authorRich Felker <dalias@aerifal.cx>
Sat, 10 Aug 2013 00:04:05 +0000 (20:04 -0400)
committerRich Felker <dalias@aerifal.cx>
Sat, 10 Aug 2013 00:04:05 +0000 (20:04 -0400)
failures prior to the exec attempt were reported correctly, but on
exec failure, the return value contained junk.

src/process/posix_spawn.c

index 68cf795c5b2c267ea1361a5f526129c7a9f3c389..c688652672fe507ca93d4de29d5494b234497cfc 100644 (file)
@@ -105,6 +105,7 @@ static int child(void *args_vp)
                ? &attr->__mask : &args->oldmask, 0);
 
        args->exec(args->path, args->argv, args->envp);
+       ret = -errno;
 
 fail:
        /* Since sizeof errno < PIPE_BUF, the write is atomic. */