Skip to content

Commit ddc3f3d

Browse files
committed
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3: Fix #79199: curl_copy_handle() memory leak
2 parents 2b56735 + 2b5fc8e commit ddc3f3d

File tree

3 files changed

+27
-2
lines changed

3 files changed

+27
-2
lines changed

NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ PHP NEWS
77
. Fixed bug #79364 (When copy empty array, next key is unspecified). (cmb)
88
. Fixed bug #78210 (Invalid pointer address). (cmb, Nikita)
99

10+
- CURL:
11+
. Fixed bug #79199 (curl_copy_handle() memory leak). (cmb)
12+
1013
- SimpleXML:
1114
. Fixed bug #61597 (SXE properties may lack attributes and content). (cmb)
1215

ext/curl/interface.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2367,8 +2367,6 @@ PHP_FUNCTION(curl_copy_handle)
23672367
}
23682368
#endif
23692369

2370-
Z_ADDREF_P(zid);
2371-
23722370
ZVAL_RES(return_value, zend_register_resource(dupch, le_curl));
23732371
dupch->res = Z_RES_P(return_value);
23742372
}

ext/curl/tests/bug79199.phpt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
--TEST--
2+
Bug #79199 (curl_copy_handle() memory leak)
3+
--SKIPIF--
4+
<?php
5+
if (!extension_loaded('curl')) die('skip curl extension not available');
6+
?>
7+
--FILE--
8+
<?php
9+
$mem_old = 0;
10+
for($i = 0; $i < 50; ++$i) {
11+
$c1 = curl_init();
12+
$c2 = curl_copy_handle($c1);
13+
curl_close($c2);
14+
curl_close($c1);
15+
$mem_new = memory_get_usage();
16+
if ($mem_new <= $mem_old) {
17+
break;
18+
}
19+
$mem_old = $mem_new;
20+
}
21+
echo $i < 50 ? "okay" : "leak", PHP_EOL;
22+
?>
23+
--EXPECT--
24+
okay

0 commit comments

Comments
 (0)