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

Reply via email to