summaryrefslogtreecommitdiff
path: root/ext/standard/exec.c
diff options
context:
space:
mode:
authorRui Hirokawa <hirokawa@php.net>2011-11-11 14:52:56 +0000
committerRui Hirokawa <hirokawa@php.net>2011-11-11 14:52:56 +0000
commit40a951ccad8da0064bc05baf8d72450089961b19 (patch)
treea8befd8ef4f62fb986f0757988c855955d40e9db /ext/standard/exec.c
parentd39dbdee24d05e23183dafdfb06982777ef6f934 (diff)
downloadphp-git-40a951ccad8da0064bc05baf8d72450089961b19.tar.gz
revert changes to fix bug #60116.
Diffstat (limited to 'ext/standard/exec.c')
-rw-r--r--ext/standard/exec.c47
1 files changed, 8 insertions, 39 deletions
diff --git a/ext/standard/exec.c b/ext/standard/exec.c
index 3b6d41167d..eb80603395 100644
--- a/ext/standard/exec.c
+++ b/ext/standard/exec.c
@@ -50,16 +50,6 @@
#include <unistd.h>
#endif
-/* {{{ register_exec_constants
- * */
-void register_exec_constants(INIT_FUNC_ARGS)
-{
- REGISTER_LONG_CONSTANT("ESCAPE_CMD_PAIR", ESCAPE_CMD_PAIR, CONST_PERSISTENT|CONST_CS);
- REGISTER_LONG_CONSTANT("ESCAPE_CMD_END", ESCAPE_CMD_END, CONST_PERSISTENT|CONST_CS);
- REGISTER_LONG_CONSTANT("ESCAPE_CMD_ALL", ESCAPE_CMD_ALL, CONST_PERSISTENT|CONST_CS);
-}
-/* }}} */
-
/* {{{ php_exec
* If type==0, only last line of output is returned (exec)
* If type==1, all lines will be printed and last lined returned (system)
@@ -248,7 +238,7 @@ PHP_FUNCTION(passthru)
*NOT* safe for binary strings
*/
-PHPAPI char *php_escape_shell_cmd_ex(char *str, int flag)
+PHPAPI char *php_escape_shell_cmd(char *str)
{
register int x, y, l = strlen(str);
char *cmd;
@@ -276,25 +266,13 @@ PHPAPI char *php_escape_shell_cmd_ex(char *str, int flag)
#ifndef PHP_WIN32
case '"':
case '\'':
- if (flag == ESCAPE_CMD_ALL) {
+ if (!p && (p = memchr(str + x + 1, str[x], l - x - 1))) {
+ /* noop */
+ } else if (p && *p == str[x]) {
+ p = NULL;
+ } else {
cmd[y++] = '\\';
cmd[y++] = str[x];
- } else if (flag == ESCAPE_CMD_END) {
- if ((x == 0 || x == l - 1) && (str[0] == str[l-1])) {
- cmd[y++] = str[x];
- } else {
- cmd[y++] = '\\';
- cmd[y++] = str[x];
- }
- } else { /* ESCAPE_CMD_PAIR */
- if (!p && (p = memchr(str + x + 1, str[x], l - x - 1))) {
- /* noop */
- } else if (p && *p == str[x]) {
- p = NULL;
- } else {
- cmd[y++] = '\\';
- }
- cmd[y++] = str[x];
}
break;
#else
@@ -349,14 +327,6 @@ PHPAPI char *php_escape_shell_cmd_ex(char *str, int flag)
}
/* }}} */
-/* {{{ php_escape_shell_cmd
- */
-PHPAPI char *php_escape_shell_cmd(char *str)
-{
- return php_escape_shell_cmd_ex(str, ESCAPE_CMD_PAIR);
-}
-/* }}} */
-
/* {{{ php_escape_shell_arg
*/
PHPAPI char *php_escape_shell_arg(char *str)
@@ -427,15 +397,14 @@ PHP_FUNCTION(escapeshellcmd)
{
char *command;
int command_len;
- long flag = ESCAPE_CMD_PAIR;
char *cmd = NULL;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", &command, &command_len, &flag) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &command, &command_len) == FAILURE) {
return;
}
if (command_len) {
- cmd = php_escape_shell_cmd_ex(command, flag);
+ cmd = php_escape_shell_cmd(command);
RETVAL_STRING(cmd, 0);
} else {
RETVAL_EMPTY_STRING();