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)
|
||||
{
|
||||
// FIXME: Check if there is a shell available in the system.
|
||||
errno = ENOTSUP;
|
||||
return -1;
|
||||
struct stat st;
|
||||
if (stat("/bin/sh", &st) < 0) return 0;
|
||||
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();
|
||||
if (child == 0)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user