am 901553aa
: Merge "Switch to current OpenBSD system.c."
* commit '901553aaf4960c4ab21c9a090919aee8be5e62ab': Switch to current OpenBSD system.c.
This commit is contained in:
commit
73efa96c06
@ -106,7 +106,6 @@ libc_common_src_files := \
|
||||
stdlib/strtod.c \
|
||||
unistd/alarm.c \
|
||||
unistd/syslog.c \
|
||||
unistd/system.c \
|
||||
unistd/time.c \
|
||||
|
||||
# Fortify implementations of libc functions.
|
||||
@ -388,6 +387,7 @@ libc_upstream_openbsd_src_files := \
|
||||
upstream-openbsd/lib/libc/stdlib/strtoumax.c \
|
||||
upstream-openbsd/lib/libc/stdlib/strtoll.c \
|
||||
upstream-openbsd/lib/libc/stdlib/strtol.c \
|
||||
upstream-openbsd/lib/libc/stdlib/system.c \
|
||||
upstream-openbsd/lib/libc/locale/wcsxfrm.c \
|
||||
|
||||
libc_arch_static_src_files := \
|
||||
|
@ -29,18 +29,18 @@
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
#include <signal.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <paths.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
extern char **environ;
|
||||
|
||||
int
|
||||
system(const char *command)
|
||||
{
|
||||
pid_t pid;
|
||||
pid_t pid;
|
||||
sig_t intsave, quitsave;
|
||||
sigset_t mask, omask;
|
||||
int pstat;
|
||||
@ -61,14 +61,14 @@ system(const char *command)
|
||||
case 0: /* child */
|
||||
sigprocmask(SIG_SETMASK, &omask, NULL);
|
||||
execve(_PATH_BSHELL, argp, environ);
|
||||
_exit(127);
|
||||
}
|
||||
_exit(127);
|
||||
}
|
||||
|
||||
intsave = (sig_t) bsd_signal(SIGINT, SIG_IGN);
|
||||
quitsave = (sig_t) bsd_signal(SIGQUIT, SIG_IGN);
|
||||
intsave = signal(SIGINT, SIG_IGN);
|
||||
quitsave = signal(SIGQUIT, SIG_IGN);
|
||||
pid = waitpid(pid, (int *)&pstat, 0);
|
||||
sigprocmask(SIG_SETMASK, &omask, NULL);
|
||||
(void)bsd_signal(SIGINT, intsave);
|
||||
(void)bsd_signal(SIGQUIT, quitsave);
|
||||
(void)signal(SIGINT, intsave);
|
||||
(void)signal(SIGQUIT, quitsave);
|
||||
return (pid == -1 ? -1 : pstat);
|
||||
}
|
Loading…
Reference in New Issue
Block a user