tony2001 Mon Oct 10 08:59:07 2005 EDT Added files: (Branch: PHP_5_0) /php-src/ext/mysqli/tests bug34810.phpt
Modified files: /php-src NEWS /php-src/ext/mysqli mysqli_api.c mysqli_nonapi.c php_mysqli.h Log: MF51: fix #34810 (mysqli::init() and others use wrong $this pointer without checks) http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1760.2.495&r2=1.1760.2.496&ty=u Index: php-src/NEWS diff -u php-src/NEWS:1.1760.2.495 php-src/NEWS:1.1760.2.496 --- php-src/NEWS:1.1760.2.495 Mon Oct 10 06:47:11 2005 +++ php-src/NEWS Mon Oct 10 08:59:05 2005 @@ -2,6 +2,8 @@ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? ????, PHP 5.0.6 - Renamed CachingRecursiveIterator to RecursiveCachingIterator. (Marcus) +- Fixed bug #34810 (mysqli::init() and others use wrong $this pointer + without checks). (Tony) - Fixed bug #34788 (SOAP Client not applying correct namespace to generated values). (Dmitry) - Fixed bug #34787 (SOAP Client not handling boolean types correctly). (Dmitry) http://cvs.php.net/diff.php/php-src/ext/mysqli/mysqli_api.c?r1=1.87.2.23&r2=1.87.2.24&ty=u Index: php-src/ext/mysqli/mysqli_api.c diff -u php-src/ext/mysqli/mysqli_api.c:1.87.2.23 php-src/ext/mysqli/mysqli_api.c:1.87.2.24 --- php-src/ext/mysqli/mysqli_api.c:1.87.2.23 Thu Sep 22 16:14:25 2005 +++ php-src/ext/mysqli/mysqli_api.c Mon Oct 10 08:59:06 2005 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ - $Id: mysqli_api.c,v 1.87.2.23 2005/09/22 20:14:25 tony2001 Exp $ + $Id: mysqli_api.c,v 1.87.2.24 2005/10/10 12:59:06 tony2001 Exp $ */ #ifdef HAVE_CONFIG_H @@ -1033,7 +1033,7 @@ mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE)); mysqli_resource->ptr = (void *)mysql; - if (!getThis()) { + if (!getThis() || !instanceof_function(Z_OBJCE_P(getThis()), mysqli_link_class_entry TSRMLS_CC)) { MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_link_class_entry); } else { ((mysqli_object *) zend_object_store_get_object(getThis() TSRMLS_CC))->ptr = mysqli_resource; http://cvs.php.net/diff.php/php-src/ext/mysqli/mysqli_nonapi.c?r1=1.34.2.11&r2=1.34.2.12&ty=u Index: php-src/ext/mysqli/mysqli_nonapi.c diff -u php-src/ext/mysqli/mysqli_nonapi.c:1.34.2.11 php-src/ext/mysqli/mysqli_nonapi.c:1.34.2.12 --- php-src/ext/mysqli/mysqli_nonapi.c:1.34.2.11 Sat Aug 6 12:56:06 2005 +++ php-src/ext/mysqli/mysqli_nonapi.c Mon Oct 10 08:59:06 2005 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ - $Id: mysqli_nonapi.c,v 1.34.2.11 2005/08/06 16:56:06 andrey Exp $ + $Id: mysqli_nonapi.c,v 1.34.2.12 2005/10/10 12:59:06 tony2001 Exp $ */ #ifdef HAVE_CONFIG_H @@ -104,7 +104,7 @@ mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE)); mysqli_resource->ptr = (void *)mysql; - if (!object) { + if (!object || !instanceof_function(Z_OBJCE_P(object), mysqli_link_class_entry TSRMLS_CC)) { MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_link_class_entry); } else { ((mysqli_object *) zend_object_store_get_object(object TSRMLS_CC))->ptr = mysqli_resource; http://cvs.php.net/diff.php/php-src/ext/mysqli/php_mysqli.h?r1=1.38.2.6&r2=1.38.2.7&ty=u Index: php-src/ext/mysqli/php_mysqli.h diff -u php-src/ext/mysqli/php_mysqli.h:1.38.2.6 php-src/ext/mysqli/php_mysqli.h:1.38.2.7 --- php-src/ext/mysqli/php_mysqli.h:1.38.2.6 Sat May 21 04:54:56 2005 +++ php-src/ext/mysqli/php_mysqli.h Mon Oct 10 08:59:06 2005 @@ -15,7 +15,7 @@ | Author: Georg Richter <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ - $Id: php_mysqli.h,v 1.38.2.6 2005/05/21 08:54:56 georg Exp $ + $Id: php_mysqli.h,v 1.38.2.7 2005/10/10 12:59:06 tony2001 Exp $ */ /* A little hack to prevent build break, when mysql is used together with @@ -164,7 +164,7 @@ #define MYSQLI_REGISTER_RESOURCE(__ptr, __ce) \ {\ zval *object = getThis();\ - if (!object) {\ + if (!object || !instanceof_function(Z_OBJCE_P(object), mysqli_link_class_entry TSRMLS_CC)) {\ object = return_value;\ Z_TYPE_P(object) = IS_OBJECT;\ (object)->value.obj = mysqli_objects_new(__ce TSRMLS_CC);\ http://cvs.php.net/co.php/php-src/ext/mysqli/tests/bug34810.phpt?r=1.1&p=1 Index: php-src/ext/mysqli/tests/bug34810.phpt +++ php-src/ext/mysqli/tests/bug34810.phpt -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php