projects
/
m6w6
/
ext-http
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
back to dev
[m6w6/ext-http]
/
php_http_params.c
diff --git
a/php_http_params.c
b/php_http_params.c
index 65504ac660155e6d40da74c98d8e7b0d4b15b7cc..ce785ecbe03efef1daad18b9acb0948fc5f9a61a 100644
(file)
--- a/
php_http_params.c
+++ b/
php_http_params.c
@@
-224,6
+224,10
@@
static inline void sanitize_key(unsigned flags, char *str, size_t len, zval *zv,
if (flags & PHP_HTTP_PARAMS_ESCAPED) {
sanitize_escaped(zv TSRMLS_CC);
}
if (flags & PHP_HTTP_PARAMS_ESCAPED) {
sanitize_escaped(zv TSRMLS_CC);
}
+
+ if (!Z_STRLEN_P(zv)) {
+ return;
+ }
eos = &Z_STRVAL_P(zv)[Z_STRLEN_P(zv)-1];
if (*eos == '*') {
eos = &Z_STRVAL_P(zv)[Z_STRLEN_P(zv)-1];
if (*eos == '*') {
@@
-253,7
+257,7
@@
static inline void sanitize_rfc5987(zval *zv, char **language, zend_bool *latin1
switch (Z_STRVAL_P(zv)[0]) {
case 'I':
case 'i':
switch (Z_STRVAL_P(zv)[0]) {
case 'I':
case 'i':
- if (!strncasecmp(Z_STRVAL_P(zv),
ZEND_STRL
("iso-8859-1"))) {
+ if (!strncasecmp(Z_STRVAL_P(zv),
"iso-8859-1", lenof
("iso-8859-1"))) {
*latin1 = 1;
ptr = Z_STRVAL_P(zv) + lenof("iso-8859-1");
break;
*latin1 = 1;
ptr = Z_STRVAL_P(zv) + lenof("iso-8859-1");
break;
@@
-261,7
+265,7
@@
static inline void sanitize_rfc5987(zval *zv, char **language, zend_bool *latin1
/* no break */
case 'U':
case 'u':
/* no break */
case 'U':
case 'u':
- if (!strncasecmp(Z_STRVAL_P(zv),
ZEND_STRL
("utf-8"))) {
+ if (!strncasecmp(Z_STRVAL_P(zv),
"utf-8", lenof
("utf-8"))) {
*latin1 = 0;
ptr = Z_STRVAL_P(zv) + lenof("utf-8");
break;
*latin1 = 0;
ptr = Z_STRVAL_P(zv) + lenof("utf-8");
break;
@@
-343,7
+347,7
@@
static inline void sanitize_value(unsigned flags, char *str, size_t len, zval *z
ZVAL_COPY_VALUE(tmp, zv);
array_init(zv);
add_assoc_zval(zv, language, tmp);
ZVAL_COPY_VALUE(tmp, zv);
array_init(zv);
add_assoc_zval(zv, language, tmp);
-
S
TR_FREE(language);
+
P
TR_FREE(language);
}
}
}
}
@@
-881,7
+885,7
@@
void php_http_params_separator_free(php_http_params_token_t **separator)
php_http_params_token_t **sep = separator;
if (sep) {
while (*sep) {
php_http_params_token_t **sep = separator;
if (sep) {
while (*sep) {
-
S
TR_FREE((*sep)->str);
+
P
TR_FREE((*sep)->str);
efree(*sep);
++sep;
}
efree(*sep);
++sep;
}