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