Return to bug52820.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / file |
1.1 misho 1: --TEST-- 1.1.1.3 ! misho 2: Bug #52820 (writes to fopencookie FILE* not committed when seeking the stream) 1.1 misho 3: --SKIPIF-- 4: <?php 1.1.1.2 misho 5: if (!function_exists('leak_variable')) 6: die("skip only for debug builds"); 1.1 misho 7: /* unfortunately no standard function does a cast to FILE*, so we need 8: * curl to test this */ 9: if (!extension_loaded("curl")) exit("skip curl extension not loaded"); 10: $handle=curl_init('http://127.0.0.1:37349/'); 11: curl_setopt($handle, CURLOPT_VERBOSE, true); 12: curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); 13: if (!curl_setopt($handle, CURLOPT_STDERR, fopen("php://memory", "w+"))) 14: die("skip fopencookie not supported on this platform"); 15: --FILE-- 16: <?php 17: function do_stuff($url) { 18: $handle=curl_init('http://127.0.0.1:37349/'); 19: curl_setopt($handle, CURLOPT_VERBOSE, true); 20: curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); 21: curl_setopt($handle, CURLOPT_STDERR, $o = fopen($url, "w+")); 22: curl_exec($handle); 23: echo "About to rewind!\n"; 24: rewind($o); 25: echo stream_get_contents($o); 26: return $o; 27: } 28: 29: echo "temp stream (close after):\n"; 30: fclose(do_stuff("php://temp")); 31: 32: echo "\nmemory stream (close after):\n"; 33: fclose(do_stuff("php://memory")); 34: 1.1.1.2 misho 35: echo "\ntemp stream (leak):\n"; 36: leak_variable(do_stuff("php://temp"), true); 37: 38: echo "\nmemory stream (leak):\n"; 39: leak_variable(do_stuff("php://memory"), true); 40: 1.1 misho 41: echo "\nDone.\n"; 1.1.1.2 misho 42: --EXPECTF-- 1.1 misho 43: temp stream (close after): 44: About to rewind! 1.1.1.2 misho 45: * About to connect() to 127.0.0.1 port 37349%r.*%r 1.1.1.3 ! misho 46: * Trying 127.0.0.1...%A* Connection refused ! 47: * couldn't connect to host%S 1.1 misho 48: * Closing connection #0 49: 50: memory stream (close after): 51: About to rewind! 1.1.1.2 misho 52: * About to connect() to 127.0.0.1 port 37349%r.*%r 1.1.1.3 ! misho 53: * Trying 127.0.0.1...%A* Connection refused ! 54: * couldn't connect to host%S 1.1.1.2 misho 55: * Closing connection #0 56: 57: temp stream (leak): 58: About to rewind! 59: * About to connect() to 127.0.0.1 port 37349%r.*%r 1.1.1.3 ! misho 60: * Trying 127.0.0.1...%A* Connection refused ! 61: * couldn't connect to host%S 1.1.1.2 misho 62: * Closing connection #0 63: 64: memory stream (leak): 65: About to rewind! 66: * About to connect() to 127.0.0.1 port 37349%r.*%r 1.1.1.3 ! misho 67: * Trying 127.0.0.1...%A* Connection refused ! 68: * couldn't connect to host%S 1.1 misho 69: * Closing connection #0 70: 71: Done.