libc: Check if a shell is available if system()'s command argument is NULL
This commit is contained in:
parent
3a51807fa6
commit
84c1871d30
@ -184,11 +184,14 @@ extern "C"
|
|||||||
{
|
{
|
||||||
if (!cmd)
|
if (!cmd)
|
||||||
{
|
{
|
||||||
// FIXME: Check if there is a shell available in the system.
|
struct stat st;
|
||||||
errno = ENOTSUP;
|
if (stat("/bin/sh", &st) < 0) return 0;
|
||||||
return -1;
|
return S_ISREG(st.st_mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FIXME: During the execution of system(), SIGCHLD will be blocked, and SIGINT and SIGQUIT will be ignored, in
|
||||||
|
// the process that calls system().
|
||||||
|
|
||||||
pid_t child = fork();
|
pid_t child = fork();
|
||||||
if (child == 0)
|
if (child == 0)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user