cvs: ZendEngine2(PHP_5_1) / zend_API.c zend_API.h /tests bug34879.phpt php-src NEWS
| From: | Dmitry Stogov | Date: | Fri, 28 Oct 2005 14:46:30 +0000 |
| Subject: | cvs: ZendEngine2(PHP_5_1) / zend_API.c zend_API.h /tests bug34879.phpt php-src NEWS | ||
| Groups: | php.zend-engine.cvs | ||
| Request: | Send a blank email to php-zend-engine-cvs+get-4294@lists.php.net to get a copy of this message | ||
dmitry Fri Oct 28 10:46:30 2005 EDT
Added files: (Branch: PHP_5_1)
/ZendEngine2/tests bug34879.phpt
Modified files:
/php-src NEWS
/ZendEngine2 zend_API.c zend_API.h
Log:
Fixed bug #34879 (str_replace, array_map corrupt negative array indexes on 64-bit platforms)
http://cvs.php.net/diff.php/php-src/NEWS?r1=1.2027.2.166&r2=1.2027.2.167&ty=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.166 php-src/NEWS:1.2027.2.167
--- php-src/NEWS:1.2027.2.166 Fri Oct 28 05:57:32 2005
+++ php-src/NEWS Fri Oct 28 10:46:27 2005
@@ -19,6 +19,8 @@
- Fixed bug #34893 (PHP5.1 overloading, Cannot access private property).
(Dmitry)
- Fixed bug #34899 (Fixed sqlite extension compile failure). (Ilia)
+- Fixed bug #34879 (str_replace, array_map corrupt negative array indexes on
+ 64-bit platforms). (Dmitry)
- Fixed bug #34821 (zlib encoders fail on widely varying binary data on windows)
(Mike, Ilia)
- Fixed bug #34782 (token_get_all() gives wrong result). (Dmitry)
http://cvs.php.net/diff.php/ZendEngine2/zend_API.c?r1=1.296.2.6&r2=1.296.2.7&ty=u
Index: ZendEngine2/zend_API.c
diff -u ZendEngine2/zend_API.c:1.296.2.6 ZendEngine2/zend_API.c:1.296.2.7
--- ZendEngine2/zend_API.c:1.296.2.6 Thu Oct 27 10:07:30 2005
+++ ZendEngine2/zend_API.c Fri Oct 28 10:46:29 2005
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_API.c,v 1.296.2.6 2005/10/27 14:07:30 iliaa Exp $ */
+/* $Id: zend_API.c,v 1.296.2.7 2005/10/28 14:46:29 dmitry Exp $ */
#include "zend.h"
#include "zend_execute.h"
@@ -935,7 +935,7 @@
}
-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;
@@ -946,7 +946,7 @@
}
-ZEND_API int add_index_null(zval *arg, uint index)
+ZEND_API int add_index_null(zval *arg, ulong index)
{
zval *tmp;
@@ -956,7 +956,7 @@
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;
@@ -967,7 +967,7 @@
}
-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;
@@ -978,7 +978,7 @@
}
-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;
@@ -989,7 +989,7 @@
}
-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;
@@ -1000,7 +1000,7 @@
}
-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;
@@ -1011,7 +1011,7 @@
}
-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);
}
@@ -1122,7 +1122,7 @@
}
-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;
@@ -1133,7 +1133,7 @@
}
-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;
@@ -1144,7 +1144,7 @@
}
-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;
@@ -1155,7 +1155,7 @@
}
-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;
http://cvs.php.net/diff.php/ZendEngine2/zend_API.h?r1=1.207.2.2&r2=1.207.2.3&ty=u
Index: ZendEngine2/zend_API.h
diff -u ZendEngine2/zend_API.h:1.207.2.2 ZendEngine2/zend_API.h:1.207.2.3
--- ZendEngine2/zend_API.h:1.207.2.2 Tue Oct 25 19:19:58 2005
+++ ZendEngine2/zend_API.h Fri Oct 28 10:46:29 2005
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_API.h,v 1.207.2.2 2005/10/25 23:19:58 helly Exp $ */
+/* $Id: zend_API.h,v 1.207.2.3 2005/10/28 14:46:29 dmitry Exp $ */
#ifndef ZEND_API_H
#define ZEND_API_H
@@ -294,14 +294,14 @@
#define add_next_index_unset(__arg) add_next_index_null(__arg)
#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_null(zval *arg, uint idx);
-ZEND_API int add_index_bool(zval *arg, uint idx, int b);
-ZEND_API int add_index_resource(zval *arg, uint idx, int r);
-ZEND_API int add_index_double(zval *arg, uint idx, double d);
-ZEND_API int add_index_string(zval *arg, uint 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_zval(zval *arg, uint index, zval *value);
+ZEND_API int add_index_long(zval *arg, ulong idx, long n);
+ZEND_API int add_index_null(zval *arg, ulong idx);
+ZEND_API int add_index_bool(zval *arg, ulong idx, int b);
+ZEND_API int add_index_resource(zval *arg, ulong idx, int r);
+ZEND_API int add_index_double(zval *arg, ulong idx, double d);
+ZEND_API int add_index_string(zval *arg, ulong idx, char *str, int duplicate);
+ZEND_API int add_index_stringl(zval *arg, ulong idx, char *str, uint length, int duplicate);
+ZEND_API int add_index_zval(zval *arg, ulong index, zval *value);
ZEND_API int add_next_index_long(zval *arg, long n);
ZEND_API int add_next_index_null(zval *arg);
@@ -318,10 +318,10 @@
#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)
-ZEND_API int add_get_index_long(zval *arg, uint 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_string(zval *arg, uint 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_long(zval *arg, ulong idx, long l, 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, ulong idx, char *str, 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_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);
http://cvs.php.net/co.php/ZendEngine2/tests/bug34879.phpt?r=1.1&p=1
Index: ZendEngine2/tests/bug34879.phpt
+++ ZendEngine2/tests/bug34879.phpt
--TEST--
Bug #34879 (str_replace, array_map corrupt negative array indexes on 64-bit platforms)
--FILE--
<?php
print_r(str_replace('a', 'b', array(-1 =>-1)));
?>
--EXPECT--
Array
(
[-1] => -1
)