diff options
Diffstat (limited to 'ext/standard/exec.c')
-rw-r--r-- | ext/standard/exec.c | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/ext/standard/exec.c b/ext/standard/exec.c index d13ac454ad..55d777cb92 100644 --- a/ext/standard/exec.c +++ b/ext/standard/exec.c @@ -262,7 +262,7 @@ PHPAPI zend_string *php_escape_shell_cmd(char *str) if (mb_len < 0) { continue; } else if (mb_len > 1) { - memcpy(cmd->val + y, str + x, mb_len); + memcpy(ZSTR_VAL(cmd) + y, str + x, mb_len); y += mb_len; x += mb_len - 1; continue; @@ -277,9 +277,9 @@ PHPAPI zend_string *php_escape_shell_cmd(char *str) } else if (p && *p == str[x]) { p = NULL; } else { - cmd->val[y++] = '\\'; + ZSTR_VAL(cmd)[y++] = '\\'; } - cmd->val[y++] = str[x]; + ZSTR_VAL(cmd)[y++] = str[x]; break; #else /* % is Windows specific for environmental variables, ^%PATH% will @@ -312,17 +312,17 @@ PHPAPI zend_string *php_escape_shell_cmd(char *str) case '\x0A': /* excluding these two */ case '\xFF': #ifdef PHP_WIN32 - cmd->val[y++] = '^'; + ZSTR_VAL(cmd)[y++] = '^'; #else - cmd->val[y++] = '\\'; + ZSTR_VAL(cmd)[y++] = '\\'; #endif /* fall-through */ default: - cmd->val[y++] = str[x]; + ZSTR_VAL(cmd)[y++] = str[x]; } } - cmd->val[y] = '\0'; + ZSTR_VAL(cmd)[y] = '\0'; if ((estimate - y) > 4096) { /* realloc if the estimate was way overill @@ -330,7 +330,7 @@ PHPAPI zend_string *php_escape_shell_cmd(char *str) cmd = zend_string_truncate(cmd, y, 0); } - cmd->len = y; + ZSTR_LEN(cmd) = y; return cmd; } @@ -348,9 +348,9 @@ PHPAPI zend_string *php_escape_shell_arg(char *str) cmd = zend_string_alloc(4 * l + 2, 0); /* worst case */ #ifdef PHP_WIN32 - cmd->val[y++] = '"'; + ZSTR_VAL(cmd)[y++] = '"'; #else - cmd->val[y++] = '\''; + ZSTR_VAL(cmd)[y++] = '\''; #endif for (x = 0; x < l; x++) { @@ -360,7 +360,7 @@ PHPAPI zend_string *php_escape_shell_arg(char *str) if (mb_len < 0) { continue; } else if (mb_len > 1) { - memcpy(cmd->val + y, str + x, mb_len); + memcpy(ZSTR_VAL(cmd) + y, str + x, mb_len); y += mb_len; x += mb_len - 1; continue; @@ -371,40 +371,40 @@ PHPAPI zend_string *php_escape_shell_arg(char *str) case '"': case '%': case '!': - cmd->val[y++] = ' '; + ZSTR_VAL(cmd)[y++] = ' '; break; #else case '\'': - cmd->val[y++] = '\''; - cmd->val[y++] = '\\'; - cmd->val[y++] = '\''; + ZSTR_VAL(cmd)[y++] = '\''; + ZSTR_VAL(cmd)[y++] = '\\'; + ZSTR_VAL(cmd)[y++] = '\''; #endif /* fall-through */ default: - cmd->val[y++] = str[x]; + ZSTR_VAL(cmd)[y++] = str[x]; } } #ifdef PHP_WIN32 - if (y > 0 && '\\' == cmd->val[y - 1]) { + if (y > 0 && '\\' == ZSTR_VAL(cmd)[y - 1]) { int k = 0, n = y - 1; - for (; n >= 0 && '\\' == cmd->val[n]; n--, k++); + for (; n >= 0 && '\\' == ZSTR_VAL(cmd)[n]; n--, k++); if (k % 2) { - cmd->val[y++] = '\\'; + ZSTR_VAL(cmd)[y++] = '\\'; } } - cmd->val[y++] = '"'; + ZSTR_VAL(cmd)[y++] = '"'; #else - cmd->val[y++] = '\''; + ZSTR_VAL(cmd)[y++] = '\''; #endif - cmd->val[y] = '\0'; + ZSTR_VAL(cmd)[y] = '\0'; if ((estimate - y) > 4096) { /* realloc if the estimate was way overill * Arbitrary cutoff point of 4096 */ cmd = zend_string_truncate(cmd, y, 0); } - cmd->len = y; + ZSTR_LEN(cmd) = y; return cmd; } /* }}} */ @@ -472,7 +472,7 @@ PHP_FUNCTION(shell_exec) ret = php_stream_copy_to_mem(stream, PHP_STREAM_COPY_ALL, 0); php_stream_close(stream); - if (ret && ret->len > 0) { + if (ret && ZSTR_LEN(ret) > 0) { RETVAL_STR(ret); } } |