projects
/
m6w6
/
ext-http
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
Backport v4 updates
[m6w6/ext-http]
/
src
/
php_http_params.c
diff --git
a/src/php_http_params.c
b/src/php_http_params.c
index 9b40cfefdc767dafc1945213db20fdd45c17001a..75a9e3813c36e146ad76877f3f34db05b6700e1c 100644
(file)
--- a/
src/php_http_params.c
+++ b/
src/php_http_params.c
@@
-67,7
+67,11
@@
static inline zend_string *quote_string(zend_string *zs, zend_bool force)
{
size_t len = (zs)->len;
{
size_t len = (zs)->len;
+#if PHP_VERSION_ID < 70300
zs = php_addcslashes(zs, 0, ZEND_STRL("\0..\37\173\\\""));
zs = php_addcslashes(zs, 0, ZEND_STRL("\0..\37\173\\\""));
+#else
+ zs = php_addcslashes(zs, ZEND_STRL("\0..\37\173\\\""));
+#endif
if (force || len != (zs)->len || strpbrk((zs)->val, "()<>@,;:\"[]?={} ")) {
int len = (zs)->len + 2;
if (force || len != (zs)->len || strpbrk((zs)->val, "()<>@,;:\"[]?={} ")) {
int len = (zs)->len + 2;
@@
-136,12
+140,11
@@
static inline void prepare_urlencoded(zval *zv)
static void sanitize_dimension(zval *zv)
{
static void sanitize_dimension(zval *zv)
{
- zval arr, tmp, *cur =
NULL
;
+ zval arr, tmp, *cur =
&arr
;
char *var = NULL, *ptr = Z_STRVAL_P(zv), *end = Z_STRVAL_P(zv) + Z_STRLEN_P(zv);
long level = 0;
array_init(&arr);
char *var = NULL, *ptr = Z_STRVAL_P(zv), *end = Z_STRVAL_P(zv) + Z_STRLEN_P(zv);
long level = 0;
array_init(&arr);
- cur = &arr;
while (ptr < end) {
if (!var) {
while (ptr < end) {
if (!var) {
@@
-200,8
+203,8
@@
static void prepare_dimension(php_http_buffer_t *buf, php_http_buffer_t *keybuf,
zval *val;
php_http_buffer_t prefix;
zval *val;
php_http_buffer_t prefix;
- if (!
ZEND_HASH_GET_APPLY_COUNT
(ht)) {
-
ZEND_HASH_INC_APPLY_COUNT
(ht);
+ if (!
HT_IS_RECURSIVE
(ht)) {
+
HT_PROTECT_RECURSION
(ht);
php_http_buffer_init(&prefix);
php_http_buffer_append(&prefix, keybuf->data, keybuf->used);
php_http_buffer_init(&prefix);
php_http_buffer_append(&prefix, keybuf->data, keybuf->used);
@@
-235,7
+238,7
@@
static void prepare_dimension(php_http_buffer_t *buf, php_http_buffer_t *keybuf,
php_http_buffer_cut(&prefix, keybuf->used, prefix.used - keybuf->used);
}
ZEND_HASH_FOREACH_END();
php_http_buffer_cut(&prefix, keybuf->used, prefix.used - keybuf->used);
}
ZEND_HASH_FOREACH_END();
-
ZEND_HASH_DEC_APPLY_COUNT
(ht);
+
HT_UNPROTECT_RECURSION
(ht);
php_http_buffer_dtor(&prefix);
}
php_http_buffer_dtor(&prefix);
}
@@
-674,8
+677,9
@@
static void skip_sep(size_t skip, php_http_params_state_t *state, php_http_param
HashTable *php_http_params_parse(HashTable *params, const php_http_params_opts_t *opts)
{
HashTable *php_http_params_parse(HashTable *params, const php_http_params_opts_t *opts)
{
- php_http_params_state_t state
= {{NULL,0}, {NULL,0}, {NULL,0}, {NULL,0}, {NULL,NULL,NULL}, 0, 0}
;
+ php_http_params_state_t state;
+ memset(&state, 0, sizeof(state));
state.input.str = opts->input.str;
state.input.len = opts->input.len;
state.input.str = opts->input.str;
state.input.len = opts->input.len;
@@
-1287,7
+1291,7
@@
PHP_METHOD(HttpParams, offsetSet)
}
static zend_function_entry php_http_params_methods[] = {
}
static zend_function_entry php_http_params_methods[] = {
- PHP_ME(HttpParams, __construct, ai_HttpParams___construct, ZEND_ACC_PUBLIC|ZEND_ACC_
CTOR|ZEND_ACC_
FINAL)
+ PHP_ME(HttpParams, __construct, ai_HttpParams___construct, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
PHP_ME(HttpParams, toArray, ai_HttpParams_toArray, ZEND_ACC_PUBLIC)
PHP_ME(HttpParams, toString, ai_HttpParams_toString, ZEND_ACC_PUBLIC)
PHP_ME(HttpParams, toArray, ai_HttpParams_toArray, ZEND_ACC_PUBLIC)
PHP_ME(HttpParams, toString, ai_HttpParams_toString, ZEND_ACC_PUBLIC)