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

Reply via email to