mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Merge branch 'PHP-7.1'
This commit is contained in:
commit
7ae4fa8a03
1 changed files with 8 additions and 2 deletions
|
@ -259,11 +259,14 @@ typedef struct post_var_data {
|
|||
char *ptr;
|
||||
char *end;
|
||||
uint64_t cnt;
|
||||
|
||||
/* Bytes in ptr that have already been scanned for '&' */
|
||||
size_t already_scanned;
|
||||
} post_var_data_t;
|
||||
|
||||
static zend_bool add_post_var(zval *arr, post_var_data_t *var, zend_bool eof)
|
||||
{
|
||||
char *ksep, *vsep, *val;
|
||||
char *start, *ksep, *vsep, *val;
|
||||
size_t klen, vlen;
|
||||
size_t new_vlen;
|
||||
|
||||
|
@ -271,9 +274,11 @@ static zend_bool add_post_var(zval *arr, post_var_data_t *var, zend_bool eof)
|
|||
return 0;
|
||||
}
|
||||
|
||||
vsep = memchr(var->ptr, '&', var->end - var->ptr);
|
||||
start = var->ptr + var->already_scanned;
|
||||
vsep = memchr(start, '&', var->end - start);
|
||||
if (!vsep) {
|
||||
if (!eof) {
|
||||
var->already_scanned = var->end - var->ptr;
|
||||
return 0;
|
||||
} else {
|
||||
vsep = var->end;
|
||||
|
@ -306,6 +311,7 @@ static zend_bool add_post_var(zval *arr, post_var_data_t *var, zend_bool eof)
|
|||
efree(val);
|
||||
|
||||
var->ptr = vsep + (vsep != var->end);
|
||||
var->already_scanned = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue