summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/mysqli/mysqli.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/ext/mysqli/mysqli.c b/ext/mysqli/mysqli.c
index 31dad77233..154c249246 100644
--- a/ext/mysqli/mysqli.c
+++ b/ext/mysqli/mysqli.c
@@ -200,11 +200,22 @@ zval *mysqli_read_property(zval *object, zval *member, int type TSRMLS_DC)
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);