georg Fri Aug 13 12:25:30 2004 EDT
Modified files:
/php-src/ext/mysqli mysqli.c
Log:
fixed bug #29656 (segfault on result and statement properties)
http://cvs.php.net/diff.php/php-src/ext/mysqli/mysqli.c?r1=1.49&r2=1.50&ty=u
Index: php-src/ext/mysqli/mysqli.c
diff -u php-src/ext/mysqli/mysqli.c:1.49 php-src/ext/mysqli/mysqli.c:1.50
--- php-src/ext/mysqli/mysqli.c:1.49 Mon Aug 9 00:34:01 2004
+++ php-src/ext/mysqli/mysqli.c Fri Aug 13 12:25:29 2004
@@ -15,7 +15,7 @@
| Author: Georg Richter <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
- $Id: mysqli.c,v 1.49 2004/08/09 04:34:01 georg Exp $
+ $Id: mysqli.c,v 1.50 2004/08/13 16:25:29 georg Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -200,11 +200,22 @@
ret = zend_hash_find(obj->prop_handler, Z_STRVAL_P(member),
Z_STRLEN_P(member)+1, (void **) &hnd);
}
if (ret == SUCCESS) {
- /* check if connection is still valid */
- if (!obj->ptr ||
- !((MYSQL *)((MY_MYSQL *)((MYSQLI_RESOURCE
*)(obj->ptr))->ptr)->mysql)->thread_id) {
- retval = EG(uninitialized_zval_ptr);
- return(retval);
+
+ /* check if mysqli object is still valid */
+ if (!strcmp(obj->zo.ce->name, "mysqli")) {
+ if (!obj->ptr ||
+ !((MYSQL *)((MY_MYSQL *)((MYSQLI_RESOURCE
*)(obj->ptr))->ptr)->mysql)->thread_id) {
+ retval = EG(uninitialized_zval_ptr);
+ return(retval);
+ }
+ } else
+ /* check if stmt object is still valid */
+ if (!strcmp(obj->zo.ce->name, "mysqli_stmt")) {
+ if (!obj->ptr ||
+ !((MYSQL_STMT *)((MY_STMT *)((MYSQLI_RESOURCE
*)(obj->ptr))->ptr)->stmt)->mysql) {
+ retval = EG(uninitialized_zval_ptr);
+ return(retval);
+ }
}
ret = hnd->read_func(obj, &retval TSRMLS_CC);
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php