mirror of
https://github.com/php/php-src.git
synced 2025-08-18 06:58:55 +02:00
Fixed bug #34879 (str_replace, array_map corrupt negative array indexes)
This commit is contained in:
parent
6ca72e6ea5
commit
05bd788e23
2 changed files with 40 additions and 40 deletions
|
@ -1293,7 +1293,7 @@ ZEND_API int add_u_assoc_zval_ex(zval *arg, zend_uchar type, void *key, uint key
|
||||||
return zend_u_symtable_update(Z_ARRVAL_P(arg), type, key, key_len, (void *) &value, sizeof(zval *), NULL);
|
return zend_u_symtable_update(Z_ARRVAL_P(arg), type, key, key_len, (void *) &value, sizeof(zval *), NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
ZEND_API int add_index_long(zval *arg, uint index, long n)
|
ZEND_API int add_index_long(zval *arg, ulong index, long n)
|
||||||
{
|
{
|
||||||
zval *tmp;
|
zval *tmp;
|
||||||
|
|
||||||
|
@ -1304,7 +1304,7 @@ ZEND_API int add_index_long(zval *arg, uint index, long n)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ZEND_API int add_index_null(zval *arg, uint index)
|
ZEND_API int add_index_null(zval *arg, ulong index)
|
||||||
{
|
{
|
||||||
zval *tmp;
|
zval *tmp;
|
||||||
|
|
||||||
|
@ -1314,7 +1314,7 @@ ZEND_API int add_index_null(zval *arg, uint index)
|
||||||
return zend_hash_index_update(Z_ARRVAL_P(arg), index, (void *) &tmp, sizeof(zval *), NULL);
|
return zend_hash_index_update(Z_ARRVAL_P(arg), index, (void *) &tmp, sizeof(zval *), NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
ZEND_API int add_index_bool(zval *arg, uint index, int b)
|
ZEND_API int add_index_bool(zval *arg, ulong index, int b)
|
||||||
{
|
{
|
||||||
zval *tmp;
|
zval *tmp;
|
||||||
|
|
||||||
|
@ -1325,7 +1325,7 @@ ZEND_API int add_index_bool(zval *arg, uint index, int b)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ZEND_API int add_index_resource(zval *arg, uint index, int r)
|
ZEND_API int add_index_resource(zval *arg, ulong index, int r)
|
||||||
{
|
{
|
||||||
zval *tmp;
|
zval *tmp;
|
||||||
|
|
||||||
|
@ -1336,7 +1336,7 @@ ZEND_API int add_index_resource(zval *arg, uint index, int r)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ZEND_API int add_index_double(zval *arg, uint index, double d)
|
ZEND_API int add_index_double(zval *arg, ulong index, double d)
|
||||||
{
|
{
|
||||||
zval *tmp;
|
zval *tmp;
|
||||||
|
|
||||||
|
@ -1347,7 +1347,7 @@ ZEND_API int add_index_double(zval *arg, uint index, double d)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ZEND_API int add_index_string(zval *arg, uint index, char *str, int duplicate)
|
ZEND_API int add_index_string(zval *arg, ulong index, char *str, int duplicate)
|
||||||
{
|
{
|
||||||
zval *tmp;
|
zval *tmp;
|
||||||
|
|
||||||
|
@ -1358,7 +1358,7 @@ ZEND_API int add_index_string(zval *arg, uint index, char *str, int duplicate)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ZEND_API int add_index_stringl(zval *arg, uint index, char *str, uint length, int duplicate)
|
ZEND_API int add_index_stringl(zval *arg, ulong index, char *str, uint length, int duplicate)
|
||||||
{
|
{
|
||||||
zval *tmp;
|
zval *tmp;
|
||||||
|
|
||||||
|
@ -1369,7 +1369,7 @@ ZEND_API int add_index_stringl(zval *arg, uint index, char *str, uint length, in
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ZEND_API int add_index_binary(zval *arg, uint index, char *str, int duplicate TSRMLS_DC)
|
ZEND_API int add_index_binary(zval *arg, ulong index, char *str, int duplicate TSRMLS_DC)
|
||||||
{
|
{
|
||||||
zval *tmp;
|
zval *tmp;
|
||||||
|
|
||||||
|
@ -1380,7 +1380,7 @@ ZEND_API int add_index_binary(zval *arg, uint index, char *str, int duplicate TS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ZEND_API int add_index_binaryl(zval *arg, uint index, char *str, uint length, int duplicate TSRMLS_DC)
|
ZEND_API int add_index_binaryl(zval *arg, ulong index, char *str, uint length, int duplicate TSRMLS_DC)
|
||||||
{
|
{
|
||||||
zval *tmp;
|
zval *tmp;
|
||||||
|
|
||||||
|
@ -1391,7 +1391,7 @@ ZEND_API int add_index_binaryl(zval *arg, uint index, char *str, uint length, in
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ZEND_API int add_index_unicode(zval *arg, uint index, UChar *str, int duplicate)
|
ZEND_API int add_index_unicode(zval *arg, ulong index, UChar *str, int duplicate)
|
||||||
{
|
{
|
||||||
zval *tmp;
|
zval *tmp;
|
||||||
|
|
||||||
|
@ -1402,7 +1402,7 @@ ZEND_API int add_index_unicode(zval *arg, uint index, UChar *str, int duplicate)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ZEND_API int add_index_unicodel(zval *arg, uint index, UChar *str, uint length, int duplicate)
|
ZEND_API int add_index_unicodel(zval *arg, ulong index, UChar *str, uint length, int duplicate)
|
||||||
{
|
{
|
||||||
zval *tmp;
|
zval *tmp;
|
||||||
|
|
||||||
|
@ -1413,7 +1413,7 @@ ZEND_API int add_index_unicodel(zval *arg, uint index, UChar *str, uint length,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ZEND_API int add_index_zval(zval *arg, uint index, zval *value)
|
ZEND_API int add_index_zval(zval *arg, ulong index, zval *value)
|
||||||
{
|
{
|
||||||
return zend_hash_index_update(Z_ARRVAL_P(arg), index, (void *) &value, sizeof(zval *), NULL);
|
return zend_hash_index_update(Z_ARRVAL_P(arg), index, (void *) &value, sizeof(zval *), NULL);
|
||||||
}
|
}
|
||||||
|
@ -1569,7 +1569,7 @@ ZEND_API int add_get_assoc_stringl_ex(zval *arg, char *key, uint key_len, char *
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ZEND_API int add_get_index_long(zval *arg, uint index, long l, void **dest)
|
ZEND_API int add_get_index_long(zval *arg, ulong index, long l, void **dest)
|
||||||
{
|
{
|
||||||
zval *tmp;
|
zval *tmp;
|
||||||
|
|
||||||
|
@ -1580,7 +1580,7 @@ ZEND_API int add_get_index_long(zval *arg, uint index, long l, void **dest)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ZEND_API int add_get_index_double(zval *arg, uint index, double d, void **dest)
|
ZEND_API int add_get_index_double(zval *arg, ulong index, double d, void **dest)
|
||||||
{
|
{
|
||||||
zval *tmp;
|
zval *tmp;
|
||||||
|
|
||||||
|
@ -1591,7 +1591,7 @@ ZEND_API int add_get_index_double(zval *arg, uint index, double d, void **dest)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ZEND_API int add_get_index_string(zval *arg, uint index, char *str, void **dest, int duplicate)
|
ZEND_API int add_get_index_string(zval *arg, ulong index, char *str, void **dest, int duplicate)
|
||||||
{
|
{
|
||||||
zval *tmp;
|
zval *tmp;
|
||||||
|
|
||||||
|
@ -1602,7 +1602,7 @@ ZEND_API int add_get_index_string(zval *arg, uint index, char *str, void **dest,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ZEND_API int add_get_index_stringl(zval *arg, uint index, char *str, uint length, void **dest, int duplicate)
|
ZEND_API int add_get_index_stringl(zval *arg, ulong index, char *str, uint length, void **dest, int duplicate)
|
||||||
{
|
{
|
||||||
zval *tmp;
|
zval *tmp;
|
||||||
|
|
||||||
|
@ -1612,7 +1612,7 @@ ZEND_API int add_get_index_stringl(zval *arg, uint index, char *str, uint length
|
||||||
return zend_hash_index_update(Z_ARRVAL_P(arg), index, (void *) &tmp, sizeof(zval *), dest);
|
return zend_hash_index_update(Z_ARRVAL_P(arg), index, (void *) &tmp, sizeof(zval *), dest);
|
||||||
}
|
}
|
||||||
|
|
||||||
ZEND_API int add_get_index_binary(zval *arg, uint index, char *str, void **dest, int duplicate)
|
ZEND_API int add_get_index_binary(zval *arg, ulong index, char *str, void **dest, int duplicate)
|
||||||
{
|
{
|
||||||
zval *tmp;
|
zval *tmp;
|
||||||
TSRMLS_FETCH();
|
TSRMLS_FETCH();
|
||||||
|
@ -1624,7 +1624,7 @@ ZEND_API int add_get_index_binary(zval *arg, uint index, char *str, void **dest,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ZEND_API int add_get_index_binaryl(zval *arg, uint index, char *str, uint length, void **dest, int duplicate)
|
ZEND_API int add_get_index_binaryl(zval *arg, ulong index, char *str, uint length, void **dest, int duplicate)
|
||||||
{
|
{
|
||||||
zval *tmp;
|
zval *tmp;
|
||||||
TSRMLS_FETCH();
|
TSRMLS_FETCH();
|
||||||
|
@ -1636,7 +1636,7 @@ ZEND_API int add_get_index_binaryl(zval *arg, uint index, char *str, uint length
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ZEND_API int add_get_index_unicode(zval *arg, uint index, UChar *str, void **dest, int duplicate)
|
ZEND_API int add_get_index_unicode(zval *arg, ulong index, UChar *str, void **dest, int duplicate)
|
||||||
{
|
{
|
||||||
zval *tmp;
|
zval *tmp;
|
||||||
|
|
||||||
|
@ -1647,7 +1647,7 @@ ZEND_API int add_get_index_unicode(zval *arg, uint index, UChar *str, void **des
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ZEND_API int add_get_index_unicodel(zval *arg, uint index, UChar *str, uint length, void **dest, int duplicate)
|
ZEND_API int add_get_index_unicodel(zval *arg, ulong index, UChar *str, uint length, void **dest, int duplicate)
|
||||||
{
|
{
|
||||||
zval *tmp;
|
zval *tmp;
|
||||||
|
|
||||||
|
|
|
@ -411,18 +411,18 @@ ZEND_API int add_u_assoc_zval_ex(zval *arg, zend_uchar type, void *key, uint key
|
||||||
#define add_next_index_unset(__arg) add_next_index_null(__arg)
|
#define add_next_index_unset(__arg) add_next_index_null(__arg)
|
||||||
#define add_property_unset(__arg, __key) add_property_null(__arg, __key)
|
#define add_property_unset(__arg, __key) add_property_null(__arg, __key)
|
||||||
|
|
||||||
ZEND_API int add_index_long(zval *arg, uint idx, long n);
|
ZEND_API int add_index_long(zval *arg, ulong idx, long n);
|
||||||
ZEND_API int add_index_null(zval *arg, uint idx);
|
ZEND_API int add_index_null(zval *arg, ulong idx);
|
||||||
ZEND_API int add_index_bool(zval *arg, uint idx, int b);
|
ZEND_API int add_index_bool(zval *arg, ulong idx, int b);
|
||||||
ZEND_API int add_index_resource(zval *arg, uint idx, int r);
|
ZEND_API int add_index_resource(zval *arg, ulong idx, int r);
|
||||||
ZEND_API int add_index_double(zval *arg, uint idx, double d);
|
ZEND_API int add_index_double(zval *arg, ulong idx, double d);
|
||||||
ZEND_API int add_index_string(zval *arg, uint idx, char *str, int duplicate);
|
ZEND_API int add_index_string(zval *arg, ulong idx, char *str, int duplicate);
|
||||||
ZEND_API int add_index_stringl(zval *arg, uint idx, char *str, uint length, int duplicate);
|
ZEND_API int add_index_stringl(zval *arg, ulong idx, char *str, uint length, int duplicate);
|
||||||
ZEND_API int add_index_binary(zval *arg, uint idx, char *str, int duplicate TSRMLS_DC);
|
ZEND_API int add_index_binary(zval *arg, ulong idx, char *str, int duplicate TSRMLS_DC);
|
||||||
ZEND_API int add_index_binaryl(zval *arg, uint idx, char *str, uint length, int duplicate TSRMLS_DC);
|
ZEND_API int add_index_binaryl(zval *arg, ulong idx, char *str, uint length, int duplicate TSRMLS_DC);
|
||||||
ZEND_API int add_index_unicode(zval *arg, uint idx, UChar *str, int duplicate);
|
ZEND_API int add_index_unicode(zval *arg, ulong idx, UChar *str, int duplicate);
|
||||||
ZEND_API int add_index_unicodel(zval *arg, uint idx, UChar *str, uint length, int duplicate);
|
ZEND_API int add_index_unicodel(zval *arg, ulong idx, UChar *str, uint length, int duplicate);
|
||||||
ZEND_API int add_index_zval(zval *arg, uint index, zval *value);
|
ZEND_API int add_index_zval(zval *arg, ulong index, zval *value);
|
||||||
|
|
||||||
#define add_index_text(arg, idx, str, duplicate) \
|
#define add_index_text(arg, idx, str, duplicate) \
|
||||||
if (UG(unicode)) { \
|
if (UG(unicode)) { \
|
||||||
|
@ -528,14 +528,14 @@ ZEND_API int add_get_assoc_stringl_ex(zval *arg, char *key, uint key_len, char *
|
||||||
#define add_get_assoc_string(__arg, __key, __str, __dest, __duplicate) add_get_assoc_string_ex(__arg, __key, strlen(__key)+1, __str, __dest, __duplicate)
|
#define add_get_assoc_string(__arg, __key, __str, __dest, __duplicate) add_get_assoc_string_ex(__arg, __key, strlen(__key)+1, __str, __dest, __duplicate)
|
||||||
#define add_get_assoc_stringl(__arg, __key, __str, __length, __dest, __duplicate) add_get_assoc_stringl_ex(__arg, __key, strlen(__key)+1, __str, __length, __dest, __duplicate)
|
#define add_get_assoc_stringl(__arg, __key, __str, __length, __dest, __duplicate) add_get_assoc_stringl_ex(__arg, __key, strlen(__key)+1, __str, __length, __dest, __duplicate)
|
||||||
|
|
||||||
ZEND_API int add_get_index_long(zval *arg, uint idx, long l, void **dest);
|
ZEND_API int add_get_index_long(zval *arg, ulong idx, long l, void **dest);
|
||||||
ZEND_API int add_get_index_double(zval *arg, uint idx, double d, void **dest);
|
ZEND_API int add_get_index_double(zval *arg, ulong idx, double d, void **dest);
|
||||||
ZEND_API int add_get_index_string(zval *arg, uint idx, char *str, void **dest, int duplicate);
|
ZEND_API int add_get_index_string(zval *arg, ulong idx, char *str, void **dest, int duplicate);
|
||||||
ZEND_API int add_get_index_stringl(zval *arg, uint idx, char *str, uint length, void **dest, int duplicate);
|
ZEND_API int add_get_index_stringl(zval *arg, ulong idx, char *str, uint length, void **dest, int duplicate);
|
||||||
ZEND_API int add_get_index_binary(zval *arg, uint idx, char *str, void **dest, int duplicate);
|
ZEND_API int add_get_index_binary(zval *arg, ulong idx, char *str, void **dest, int duplicate);
|
||||||
ZEND_API int add_get_index_binaryl(zval *arg, uint idx, char *str, uint length, void **dest, int duplicate);
|
ZEND_API int add_get_index_binaryl(zval *arg, ulong idx, char *str, uint length, void **dest, int duplicate);
|
||||||
ZEND_API int add_get_index_unicode(zval *arg, uint idx, UChar *str, void **dest, int duplicate);
|
ZEND_API int add_get_index_unicode(zval *arg, ulong idx, UChar *str, void **dest, int duplicate);
|
||||||
ZEND_API int add_get_index_unicodel(zval *arg, uint idx, UChar *str, uint length, void **dest, int duplicate);
|
ZEND_API int add_get_index_unicodel(zval *arg, ulong idx, UChar *str, uint length, void **dest, int duplicate);
|
||||||
|
|
||||||
ZEND_API int add_property_long_ex(zval *arg, char *key, uint key_len, long l TSRMLS_DC);
|
ZEND_API int add_property_long_ex(zval *arg, char *key, uint key_len, long l TSRMLS_DC);
|
||||||
ZEND_API int add_property_null_ex(zval *arg, char *key, uint key_len TSRMLS_DC);
|
ZEND_API int add_property_null_ex(zval *arg, char *key, uint key_len TSRMLS_DC);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue