summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/exec.c13
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);
+ }
}
/* }}} */