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 >> /opt/php-7.0.1/ext/standard/tests/file/ |
files >> //opt/php-7.0.1/ext/standard/tests/file/bug52820.phpt |
--TEST-- Bug #52820 (writes to fopencookie FILE* not committed when seeking the stream) --SKIPIF-- <?php if (!function_exists('leak_variable')) die("skip only for debug builds"); /* unfortunately no standard function does a cast to FILE*, so we need * curl to test this */ if (!extension_loaded("curl")) exit("skip curl extension not loaded"); $handle=curl_init('http://127.0.0.1:37349/'); curl_setopt($handle, CURLOPT_VERBOSE, true); curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); if (!curl_setopt($handle, CURLOPT_STDERR, fopen("php://memory", "w+"))) die("skip fopencookie not supported on this platform"); --FILE-- <?php function do_stuff($url) { $handle=curl_init('http://127.0.0.1:37349/'); curl_setopt($handle, CURLOPT_VERBOSE, true); curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); curl_setopt($handle, CURLOPT_STDERR, $o = fopen($url, "w+")); curl_exec($handle); echo "About to rewind!\n"; rewind($o); echo stream_get_contents($o); return $o; } echo "temp stream (close after):\n"; fclose(do_stuff("php://temp")); echo "\nmemory stream (close after):\n"; fclose(do_stuff("php://memory")); echo "\ntemp stream (leak):\n"; leak_variable(do_stuff("php://temp"), true); echo "\nmemory stream (leak):\n"; leak_variable(do_stuff("php://memory"), true); echo "\nDone.\n"; --EXPECTF-- temp stream (close after): About to rewind! * %ATrying 127.0.0.1...%AConnection refused%A * Closing connection%A%d memory stream (close after): About to rewind! * %ATrying 127.0.0.1...%AConnection refused%A * Closing connection%A%d temp stream (leak): About to rewind! * %ATrying 127.0.0.1...%AConnection refused%A * Closing connection%A%d memory stream (leak): About to rewind! * %ATrying 127.0.0.1...%AConnection refused%A * Closing connection%A%d Done.y~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`