mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
fix stas' last commit, added additional ifdefs PHP_SIGCHILD to fix win32 build
This commit is contained in:
parent
c8a22a3848
commit
9fa484104e
1 changed files with 14 additions and 2 deletions
|
@ -51,7 +51,9 @@ int php_Exec(int type, char *cmd, pval *array, pval *return_value)
|
|||
int overflow_limit, lcmd, ldir;
|
||||
int rsrc_id;
|
||||
char *b, *c, *d=NULL;
|
||||
#if PHP_SIGCHILD
|
||||
void (*sig_handler)();
|
||||
#endif
|
||||
PLS_FETCH();
|
||||
FLS_FETCH();
|
||||
|
||||
|
@ -93,8 +95,9 @@ int php_Exec(int type, char *cmd, pval *array, pval *return_value)
|
|||
tmp = php_escape_shell_cmd(d);
|
||||
efree(d);
|
||||
d = tmp;
|
||||
|
||||
#if PHP_SIGCHILD
|
||||
sig_handler = signal (SIGCHLD, SIG_DFL);
|
||||
#endif
|
||||
#ifdef PHP_WIN32
|
||||
fp = V_POPEN(d, "rb");
|
||||
#else
|
||||
|
@ -104,11 +107,15 @@ int php_Exec(int type, char *cmd, pval *array, pval *return_value)
|
|||
php_error(E_WARNING, "Unable to fork [%s]", d);
|
||||
efree(d);
|
||||
efree(buf);
|
||||
#if PHP_SIGCHILD
|
||||
signal (SIGCHLD, sig_handler);
|
||||
#endif
|
||||
return -1;
|
||||
}
|
||||
} else { /* not safe_mode */
|
||||
#if PHP_SIGCHILD
|
||||
sig_handler = signal (SIGCHLD, SIG_DFL);
|
||||
#endif
|
||||
#ifdef PHP_WIN32
|
||||
fp = V_POPEN(cmd, "rb");
|
||||
#else
|
||||
|
@ -117,7 +124,9 @@ int php_Exec(int type, char *cmd, pval *array, pval *return_value)
|
|||
if (!fp) {
|
||||
php_error(E_WARNING, "Unable to fork [%s]", cmd);
|
||||
efree(buf);
|
||||
#if PHP_SIGCHILD
|
||||
signal (SIGCHLD, sig_handler);
|
||||
#endif
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
@ -146,7 +155,9 @@ int php_Exec(int type, char *cmd, pval *array, pval *return_value)
|
|||
if ( buf == NULL ) {
|
||||
php_error(E_WARNING, "Unable to erealloc %d bytes for exec buffer",
|
||||
buflen + EXEC_INPUT_BUF);
|
||||
#if PHP_SIGCHILD
|
||||
signal (SIGCHLD, sig_handler);
|
||||
#endif
|
||||
return -1;
|
||||
}
|
||||
buflen += EXEC_INPUT_BUF;
|
||||
|
@ -212,8 +223,9 @@ int php_Exec(int type, char *cmd, pval *array, pval *return_value)
|
|||
FG(pclose_ret) = WEXITSTATUS(FG(pclose_ret));
|
||||
}
|
||||
#endif
|
||||
|
||||
#if PHP_SIGCHILD
|
||||
signal (SIGCHLD, sig_handler);
|
||||
#endif
|
||||
if (d) {
|
||||
efree(d);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue