summaryrefslogtreecommitdiff
path: root/main/streams/streams.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2017-11-02 03:04:27 +0300
committerDmitry Stogov <dmitry@zend.com>2017-11-02 03:04:27 +0300
commit468fd78bff6d97776f12fe84b946e47a4c16040f (patch)
tree3ee35539bffc872fcb3ad344e83add6be2ed54b1 /main/streams/streams.c
parente2589b7d029cfe78316222493827876432cc1b88 (diff)
downloadphp-git-468fd78bff6d97776f12fe84b946e47a4c16040f.tar.gz
Fixed memory leaks
Diffstat (limited to 'main/streams/streams.c')
-rw-r--r--main/streams/streams.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/main/streams/streams.c b/main/streams/streams.c
index 1c3a144e9b..1f82871ab3 100644
--- a/main/streams/streams.c
+++ b/main/streams/streams.c
@@ -1665,12 +1665,17 @@ static inline int php_stream_wrapper_scheme_validate(const char *protocol, unsig
PHPAPI int php_register_url_stream_wrapper(const char *protocol, php_stream_wrapper *wrapper)
{
unsigned int protocol_len = (unsigned int)strlen(protocol);
+ int ret;
+ zend_string *str;
if (php_stream_wrapper_scheme_validate(protocol, protocol_len) == FAILURE) {
return FAILURE;
}
- return zend_hash_add_ptr(&url_stream_wrappers_hash, zend_string_init_interned(protocol, protocol_len, 1), wrapper) ? SUCCESS : FAILURE;
+ str = zend_string_init_interned(protocol, protocol_len, 1);
+ ret = zend_hash_add_ptr(&url_stream_wrappers_hash, str, wrapper) ? SUCCESS : FAILURE;
+ zend_string_release(str);
+ return ret;
}
PHPAPI int php_unregister_url_stream_wrapper(const char *protocol)