1--TEST-- 2Test CURLMOPT_PUSHFUNCTION with non-existent callback function 3--CREDITS-- 4Davey Shafik 5Kévin Dunglas 6Niels Dossche 7--EXTENSIONS-- 8curl 9--XLEAK-- 10--SKIPIF-- 11<?php 12include 'skipif-nocaddy.inc'; 13 14$curl_version = curl_version(); 15if ($curl_version['version_number'] < 0x080100) { 16 exit("skip: test may crash with curl < 8.1.0"); 17} 18?> 19--FILE-- 20<?php 21// Test adapted from curl_pushfunction.phpt 22 23$mh = curl_multi_init(); 24 25curl_multi_setopt($mh, CURLMOPT_PIPELINING, CURLPIPE_MULTIPLEX); 26curl_multi_setopt($mh, CURLMOPT_PUSHFUNCTION, "nonexistent"); 27 28$ch = curl_init(); 29curl_setopt($ch, CURLOPT_URL, "https://localhost/serverpush"); 30curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0); 31curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 32 33curl_multi_add_handle($mh, $ch); 34 35$active = null; 36while(true) { 37 $status = curl_multi_exec($mh, $active); 38 39 do { 40 $info = curl_multi_info_read($mh); 41 if (false !== $info && $info['msg'] == CURLMSG_DONE) { 42 $handle = $info['handle']; 43 if ($handle !== null) { 44 curl_multi_remove_handle($mh, $handle); 45 curl_close($handle); 46 break 2; 47 } 48 } 49 } while ($info); 50} 51 52curl_multi_close($mh); 53?> 54--EXPECTF-- 55Warning: curl_multi_exec(): Cannot call the CURLMOPT_PUSHFUNCTION in %s on line %d 56