diff options
author | Christoph M. Becker <cmbecker69@gmx.de> | 2020-03-12 11:27:30 +0100 |
---|---|---|
committer | Christoph M. Becker <cmbecker69@gmx.de> | 2020-03-12 11:27:45 +0100 |
commit | ddc3f3d595c28b7b9756dc346c0895000cf2631f (patch) | |
tree | d792d885462995956cf68c173fb111efd83a7318 /ext/curl | |
parent | 2b56735ea0772faeb635b22737e14115b9f1757c (diff) | |
parent | 2b5fc8e325e3f385851ab7a7a77010bbccd2b16e (diff) | |
download | php-git-ddc3f3d595c28b7b9756dc346c0895000cf2631f.tar.gz |
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
Fix #79199: curl_copy_handle() memory leak
Diffstat (limited to 'ext/curl')
-rw-r--r-- | ext/curl/interface.c | 2 | ||||
-rw-r--r-- | ext/curl/tests/bug79199.phpt | 24 |
2 files changed, 24 insertions, 2 deletions
diff --git a/ext/curl/interface.c b/ext/curl/interface.c index 45e41ba49e..7d57df8f78 100644 --- a/ext/curl/interface.c +++ b/ext/curl/interface.c @@ -2367,8 +2367,6 @@ PHP_FUNCTION(curl_copy_handle) } #endif - Z_ADDREF_P(zid); - ZVAL_RES(return_value, zend_register_resource(dupch, le_curl)); dupch->res = Z_RES_P(return_value); } diff --git a/ext/curl/tests/bug79199.phpt b/ext/curl/tests/bug79199.phpt new file mode 100644 index 0000000000..b56f22614f --- /dev/null +++ b/ext/curl/tests/bug79199.phpt @@ -0,0 +1,24 @@ +--TEST-- +Bug #79199 (curl_copy_handle() memory leak) +--SKIPIF-- +<?php +if (!extension_loaded('curl')) die('skip curl extension not available'); +?> +--FILE-- +<?php +$mem_old = 0; +for($i = 0; $i < 50; ++$i) { + $c1 = curl_init(); + $c2 = curl_copy_handle($c1); + curl_close($c2); + curl_close($c1); + $mem_new = memory_get_usage(); + if ($mem_new <= $mem_old) { + break; + } + $mem_old = $mem_new; +} +echo $i < 50 ? "okay" : "leak", PHP_EOL; +?> +--EXPECT-- +okay |