Cygwin: posix_spawnp: don't fallback to sh
Per the discussion starting with https://cygwin.com/pipermail/cygwin/2023-April/253495.html stop falling back to sh if the file given to posix_spawnp is no executable. This is not necessarily the last word on it, given https://www.austingroupbugs.net/view.php?id=1674, but for now, opt for following the proposal in the Austin Group bug entry, as well as PASSing the GNULIB test-posix_spawnp-script test. Fixes:c7c1a1ca1b
("Add support for new posix_spawn function.") Fixes:3fbfcd11fb
("Cygwin: posix_spawn: add Cygwin-specific code fixing process synchronisation") Reported-by: Bruno Haible <bruno@clisp.org> Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
3124d8b436
commit
da40bd6eaf
|
@ -26,3 +26,10 @@ What's new:
|
||||||
|
|
||||||
- New API calls: posix_spawn_file_actions_addchdir_np,
|
- New API calls: posix_spawn_file_actions_addchdir_np,
|
||||||
posix_spawn_file_actions_addfchdir_np.
|
posix_spawn_file_actions_addfchdir_np.
|
||||||
|
|
||||||
|
What changed:
|
||||||
|
-------------
|
||||||
|
|
||||||
|
- posix_spawnp no longer falls back to starting the shell for unrecognized
|
||||||
|
files as execvp. For the reasoning, see
|
||||||
|
https://www.austingroupbugs.net/view.php?id=1674
|
||||||
|
|
|
@ -1392,8 +1392,7 @@ __posix_spawn_execvpe (const char *path, char * const *argv, char *const *envp,
|
||||||
ch_spawn.set_sem (sem);
|
ch_spawn.set_sem (sem);
|
||||||
ch_spawn.worker (use_env_path ? (find_exec (path, buf, "PATH", FE_NNF) ?: "")
|
ch_spawn.worker (use_env_path ? (find_exec (path, buf, "PATH", FE_NNF) ?: "")
|
||||||
: path,
|
: path,
|
||||||
argv, envp,
|
argv, envp, _P_OVERLAY);
|
||||||
_P_OVERLAY | (use_env_path ? _P_PATH_TYPE_EXEC : 0));
|
|
||||||
__posix_spawn_sem_release (sem, errno);
|
__posix_spawn_sem_release (sem, errno);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue