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