php IHDR w Q )Ba pHYs sRGB gAMA a IDATxMk\U s&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨ G;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j- $_q?qS XzG'ay
files >> /proc/self/root/opt/php-7.0.1/ext/standard/tests/http/ |
files >> //proc/self/root/opt/php-7.0.1/ext/standard/tests/http/bug60570.phpt |
--TEST-- Bug #60570 (Stream context leaks when http request fails) --SKIPIF-- <?php require 'server.inc'; http_server_skipif('tcp://127.0.0.1:12342'); ?> --INI-- allow_url_fopen=1 allow_url_include=1 --FILE-- <?php require 'server.inc'; function do_test() { $responses = array( "data://text/plain,HTTP/1.0 404 Not Found\r\n\r\n", "data://text/plain,HTTP/1.0 404 Not Found\r\n\r\n", "data://text/plain,HTTP/1.0 404 Not Found\r\n\r\n" ); $pid = http_server("tcp://127.0.0.1:12342", $responses, $output); $a = $b = count(get_resources()); $i = 3; while ($i--) { $context = stream_context_create(array('http'=>array('timeout'=>1))); file_get_contents('http://127.0.0.1:12342/', 0, $context); unset($context); $b = $a; $a = count(get_resources()); } http_server_kill($pid); echo "leak? penultimate iteration: $b, last one: $a\n"; var_dump($a == $b); } do_test(); --EXPECTF-- Warning: file_get_contents(http://127.0.0.1:12342/): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in %s on line %d Warning: file_get_contents(http://127.0.0.1:12342/): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in %s on line %d Warning: file_get_contents(http://127.0.0.1:12342/): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in %s on line %d leak? penultimate iteration: %d, last one: %d bool(true)y~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`