summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/exec.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/ext/standard/exec.c b/ext/standard/exec.c
index 7bd3ef9f7f..7e21bce098 100644
--- a/ext/standard/exec.c
+++ b/ext/standard/exec.c
@@ -482,7 +482,8 @@ PHP_FUNCTION(escapeshellcmd)
php_error_docref(NULL, E_ERROR, "Input string contains NULL bytes");
return;
}
- RETVAL_STR(php_escape_shell_cmd(command));
+ cmd = php_escape_shell_cmd(command);
+ RETVAL_STRINGL_CHECK(cmd, strlen(cmd), 0);
} else {
RETVAL_EMPTY_STRING();
}
@@ -505,7 +506,8 @@ PHP_FUNCTION(escapeshellarg)
php_error_docref(NULL, E_ERROR, "Input string contains NULL bytes");
return;
}
- RETVAL_STR(php_escape_shell_arg(argument));
+ cmd = php_escape_shell_arg(argument);
+ RETVAL_STRINGL_CHECK(cmd, strlen(cmd), 0);
}
}
/* }}} */
@@ -537,8 +539,8 @@ PHP_FUNCTION(shell_exec)
ret = php_stream_copy_to_mem(stream, PHP_STREAM_COPY_ALL, 0);
php_stream_close(stream);
- if (ret && ZSTR_LEN(ret) > 0) {
- RETVAL_STR(ret);
+ if (total_readbytes > 0) {
+ RETVAL_STRINGL_CHECK(ret, total_readbytes, 0);
}
}
/* }}} */