mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 04:11:08 +00:00
Don't modify things if we are using vfork as this is very bad and may cause unexpected behavior (issue #7970 reported by Nick Gavrikov)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@45595 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -690,7 +690,9 @@ void ast_unreplace_sigchld(void)
|
||||
int ast_safe_system(const char *s)
|
||||
{
|
||||
pid_t pid;
|
||||
#ifdef HAVE_WORKING_FORK
|
||||
int x;
|
||||
#endif
|
||||
int res;
|
||||
struct rusage rusage;
|
||||
int status;
|
||||
@@ -705,11 +707,13 @@ int ast_safe_system(const char *s)
|
||||
#endif
|
||||
|
||||
if (pid == 0) {
|
||||
#ifdef HAVE_WORKING_FORK
|
||||
if (ast_opt_high_priority)
|
||||
ast_set_priority(0);
|
||||
/* Close file descriptors and launch system command */
|
||||
for (x = STDERR_FILENO + 1; x < 4096; x++)
|
||||
close(x);
|
||||
#endif
|
||||
execl("/bin/sh", "/bin/sh", "-c", s, (char *) NULL);
|
||||
exit(1);
|
||||
} else if (pid > 0) {
|
||||
|
Reference in New Issue
Block a user