diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2021-02-02 10:05:35 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2021-02-02 10:05:35 +0100 |
commit | 51d76c346e1a22bc711c74a231b58a495f2fb42c (patch) | |
tree | dc04f4edbd4abcb9c7b47ea75ad9a0af5a0bd76e | |
parent | 675a9b28311bbe55ccb171fb67b1c23aa0d8d049 (diff) | |
download | php-git-51d76c346e1a22bc711c74a231b58a495f2fb42c.tar.gz |
Fix persistent leak on load_wsdl_ex failure
Move the load_wsdl_ex call into the zend_try that destroys the
docs hash table. The wsdl will be inserted into docs early on,
and will thus be released on subsequent bailout.
-rw-r--r-- | ext/soap/php_sdl.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/ext/soap/php_sdl.c b/ext/soap/php_sdl.c index 8d5e7335e1..26a23f57db 100644 --- a/ext/soap/php_sdl.c +++ b/ext/soap/php_sdl.c @@ -741,9 +741,8 @@ static sdlPtr load_wsdl(zval *this_ptr, char *struri) zend_hash_init(&ctx.portTypes, 0, NULL, NULL, 0); zend_hash_init(&ctx.services, 0, NULL, NULL, 0); - load_wsdl_ex(this_ptr, struri, &ctx, 0); zend_try { - + load_wsdl_ex(this_ptr, struri, &ctx, 0); schema_pass2(&ctx); n = zend_hash_num_elements(&ctx.services); |