diff options
-rw-r--r-- | ext/standard/exec.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/ext/standard/exec.c b/ext/standard/exec.c index 1d866a4579..df0d3f9cd8 100644 --- a/ext/standard/exec.c +++ b/ext/standard/exec.c @@ -347,15 +347,18 @@ char * _php3_escapeshellcmd(char *str) { PHP_FUNCTION(escapeshellcmd) { pval *arg1; - char *cmd; + char *cmd = NULL; if (getParameters(ht, 1, &arg1) == FAILURE) { WRONG_PARAM_COUNT; } - cmd = _php3_escapeshellcmd(arg1->value.str.val); - - RETVAL_STRING(cmd,1); - efree(cmd); + + convert_to_string(arg1); + if (arg1->value.str.len) { + cmd = _php3_escapeshellcmd(arg1->value.str.val); + RETVAL_STRING(cmd, 1); + efree(cmd); + } } /* }}} */ |