summaryrefslogtreecommitdiff
path: root/ext/standard/streamsfuncs.c
diff options
context:
space:
mode:
authorFelipe Pena <felipe@php.net>2009-08-03 13:16:24 +0000
committerFelipe Pena <felipe@php.net>2009-08-03 13:16:24 +0000
commitc46c584f9753c9baf659cebfa291d0d1aca26f04 (patch)
tree9992934ce77d698951c44e272b392018a1e42796 /ext/standard/streamsfuncs.c
parent28e248da9bf6d9dd170b41e3cef94d2bc63f1d07 (diff)
downloadphp-git-c46c584f9753c9baf659cebfa291d0d1aca26f04.tar.gz
- Re-fix stream_is_local() memory leaks
Diffstat (limited to 'ext/standard/streamsfuncs.c')
-rw-r--r--ext/standard/streamsfuncs.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c
index 43182c8030..f3b333b390 100644
--- a/ext/standard/streamsfuncs.c
+++ b/ext/standard/streamsfuncs.c
@@ -1397,8 +1397,17 @@ PHP_FUNCTION(stream_is_local)
}
wrapper = stream->wrapper;
} else {
- convert_to_string_ex(&zstream);
- wrapper = php_stream_locate_url_wrapper(Z_STRVAL_P(zstream), NULL, 0 TSRMLS_CC);
+ zval *copy_tmp;
+
+ ALLOC_ZVAL(copy_tmp);
+ *copy_tmp = *zstream;
+ zval_copy_ctor(copy_tmp);
+ INIT_PZVAL(copy_tmp);
+ convert_to_string(copy_tmp);
+
+ wrapper = php_stream_locate_url_wrapper(Z_STRVAL_P(copy_tmp), NULL, 0 TSRMLS_CC);
+
+ zval_ptr_dtor(&copy_tmp);
}
if(!wrapper) {