summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Dovgal <tony2001@php.net>2006-03-22 23:12:03 +0000
committerAntony Dovgal <tony2001@php.net>2006-03-22 23:12:03 +0000
commit1ce8546cd11809189140c5b697015e1ec3eea28d (patch)
tree1ca38b8e8785cd573bce2d6aec7ee661eed8b362
parent09fcf3162c652fca1f524bcdc4ca09f509dc689f (diff)
downloadphp-git-1ce8546cd11809189140c5b697015e1ec3eea28d.tar.gz
fix leak
-rwxr-xr-xext/spl/spl_array.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/ext/spl/spl_array.c b/ext/spl/spl_array.c
index 0491fc70f4..f1d056e57f 100755
--- a/ext/spl/spl_array.c
+++ b/ext/spl/spl_array.c
@@ -260,14 +260,13 @@ static zval *spl_array_read_dimension_ex(int check_inherited, zval *object, zval
if (intern->fptr_offset_get) {
zval *rv;
zend_call_method_with_1_params(&object, Z_OBJCE_P(object), &intern->fptr_offset_get, "offsetGet", &rv, offset);
- zval_ptr_dtor(&intern->retval);
- MAKE_STD_ZVAL(intern->retval);
if (rv) {
+ zval_ptr_dtor(&intern->retval);
+ MAKE_STD_ZVAL(intern->retval);
ZVAL_ZVAL(intern->retval, rv, 1, 1);
- } else {
- ZVAL_NULL(intern->retval);
+ return intern->retval;
}
- return intern->retval;
+ return EG(uninitialized_zval_ptr);
}
}
return *spl_array_get_dimension_ptr_ptr(check_inherited, object, offset, type TSRMLS_CC);