helly Tue Mar 20 20:28:08 2007 UTC
Added files: (Branch: PHP_5_2)
/php-src/ext/spl/tests bug40872.phpt
Modified files:
/php-src NEWS
/php-src/ext/spl spl_array.c
Log:
- MFH Fix Bug #40872 (inconsistency in offsetSet, offsetExists treatment
of string enclosed integers)
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.606&r2=1.2027.2.547.2.607&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.606 php-src/NEWS:1.2027.2.547.2.607
--- php-src/NEWS:1.2027.2.547.2.606 Tue Mar 20 19:39:27 2007
+++ php-src/NEWS Tue Mar 20 20:28:07 2007
@@ -14,6 +14,7 @@
- Improved SPL (Marcus)
. Added SplFileInfo::getBasename(), DirectoryIterator::getBasename().
. Added SplFileInfo::getLinkTarget(), SplFileInfo::getRealPath().
+ . Made RecursiveFilterIterator::accept() abstract as stated in documentation.
- Improved SOAP
. Added ability to encode arrays with "SOAP-ENC:Array" type instead of WSDL
type. To activate the ability use "feature"=>SOAP_USE_XSI_ARRAY_TYPE
@@ -29,6 +30,8 @@
- Fixed zend_llist_remove_tail (Michael Wallner, Dmitry)
- Fixed a thread safety issue in gd gif read code (Nuno, Roman Nemecek)
- Fixed CVE-2007-1001, GD wbmp used with invalid image size (Pierre)
+- Fixed bug #40872 (inconsistency in offsetSet, offsetExists treatment of
+ string enclosed integers). (Marcus)
- Fixed bug #40854 (imap_mail_compose() creates an invalid terminator for
multipart e-mails). (Ilia)
- Fixed bug #40848 (sorting issue on 64-bit Solaris). (Wez)
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/spl_array.c?r1=1.71.2.17.2.8&r2=1.71.2.17.2.9&diff_format=u
Index: php-src/ext/spl/spl_array.c
diff -u php-src/ext/spl/spl_array.c:1.71.2.17.2.8
php-src/ext/spl/spl_array.c:1.71.2.17.2.9
--- php-src/ext/spl/spl_array.c:1.71.2.17.2.8 Thu Feb 8 22:17:40 2007
+++ php-src/ext/spl/spl_array.c Tue Mar 20 20:28:08 2007
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spl_array.c,v 1.71.2.17.2.8 2007/02/08 22:17:40 helly Exp $ */
+/* $Id: spl_array.c,v 1.71.2.17.2.9 2007/03/20 20:28:08 helly Exp $ */
#ifdef HAVE_CONFIG_H
# include "config.h"
@@ -456,7 +456,7 @@
{
spl_array_object *intern =
(spl_array_object*)zend_object_store_get_object(object TSRMLS_CC);
long index;
- zval *rv;
+ zval *rv, **tmp;
if (check_inherited && intern->fptr_offset_has) {
SEPARATE_ARG_IF_REF(offset);
@@ -475,9 +475,7 @@
switch(Z_TYPE_P(offset)) {
case IS_STRING:
if (check_empty) {
- zval **tmp;
- HashTable *ht = spl_array_get_hash_table(intern, 0
TSRMLS_CC);
- if (zend_hash_find(ht, Z_STRVAL_P(offset),
Z_STRLEN_P(offset)+1, (void **) &tmp) != FAILURE && zend_is_true(*tmp)) {
+ if (zend_symtable_find(spl_array_get_hash_table(intern,
0 TSRMLS_CC), Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, (void **) &tmp) !=
FAILURE && zend_is_true(*tmp)) {
return 1;
}
return 0;
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/bug40872.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/bug40872.phpt
+++ php-src/ext/spl/tests/bug40872.phpt
--TEST--
Bug #40872 (inconsistency in offsetSet, offsetExists treatment of string
enclosed integers)
--FILE--
<?php
class Project {
public $id;
function __construct($id) {
$this->id = $id;
}
}
class ProjectsList extends ArrayIterator {
public function add(Project $item) {
$this->offsetSet($item->id, $item);
}
}
$projects = new ProjectsList();
$projects->add(new Project('1'));
$projects->add(new Project(2));
var_dump($projects->offsetExists(1));
var_dump($projects->offsetExists('2'));
?>
===DONE===
--EXPECT--
bool(true)
bool(true)
===DONE===
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php