summaryrefslogtreecommitdiff
path: root/ext/mysqli/mysqli.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mysqli/mysqli.c')
-rw-r--r--ext/mysqli/mysqli.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/ext/mysqli/mysqli.c b/ext/mysqli/mysqli.c
index 55e06e7bb8..9138c07b01 100644
--- a/ext/mysqli/mysqli.c
+++ b/ext/mysqli/mysqli.c
@@ -165,6 +165,14 @@ zval *mysqli_read_property(zval *object, zval *member, zend_bool silent TSRMLS_D
zend_object_handlers *std_hnd;
int ret;
+ ret = FAILURE;
+ obj = (mysqli_object *)zend_objects_get_address(object TSRMLS_CC);
+
+ if (!obj->valid) {
+ retval = EG(uninitialized_zval_ptr);
+ return(retval);
+ }
+
if (member->type != IS_STRING) {
tmp_member = *member;
zval_copy_ctor(&tmp_member);
@@ -172,9 +180,6 @@ zval *mysqli_read_property(zval *object, zval *member, zend_bool silent TSRMLS_D
member = &tmp_member;
}
- ret = FAILURE;
- obj = (mysqli_object *)zend_objects_get_address(object TSRMLS_CC);
-
if (obj->prop_handler != NULL) {
ret = zend_hash_find(obj->prop_handler, Z_STRVAL_P(member), Z_STRLEN_P(member)+1, (void **) &hnd);
}
@@ -198,7 +203,7 @@ zval *mysqli_read_property(zval *object, zval *member, zend_bool silent TSRMLS_D
}
/* }}} */
-/* {{{ mysqli_read_property */
+/* {{{ mysqli_write_property */
void mysqli_write_property(zval *object, zval *member, zval *value TSRMLS_DC)
{
zval tmp_member;
@@ -261,6 +266,7 @@ PHP_MYSQLI_EXPORT(zend_object_value) mysqli_objects_new(zend_class_entry *class_
intern->zo.in_get = 0;
intern->zo.in_set = 0;
intern->ptr = NULL;
+ intern->valid = 0;
intern->prop_handler = NULL;
zend_hash_find(&classes, class_type->name, class_type->name_length + 1, (void **) &intern->prop_handler);