1--TEST-- 2imagecreatefromwbmp with invalid wbmp 3--EXTENSIONS-- 4gd 5--SKIPIF-- 6<?php 7 if (GD_BUNDLED) die("skip requires extern GD\n"); 8?> 9--FILE-- 10<?php 11$filename = __DIR__ . '/_tmp.wbmp'; 12$fp = fopen($filename,"wb"); 13if (!$fp) { 14 exit("Failed to create <$filename>"); 15} 16 17//write header 18$c = 0; 19fputs($fp, chr($c), 1); 20fputs($fp, $c, 1); 21 22//write width = 2^32 / 4 + 1 23$c = 0x84; 24fputs($fp, chr($c), 1); 25$c = 0x80; 26fputs($fp, chr($c), 1); 27fputs($fp, chr($c), 1); 28fputs($fp, chr($c), 1); 29$c = 0x01; 30fputs($fp, chr($c), 1); 31 32/*write height = 4*/ 33$c = 0x04; 34fputs($fp, chr($c), 1); 35 36/*write some data to cause overflow*/ 37for ($i=0; $i<10000; $i++) { 38 fwrite($fp, chr($c), 1); 39} 40 41fclose($fp); 42$im = imagecreatefromwbmp($filename); 43unlink($filename); 44?> 45--EXPECTF-- 46Warning: imagecreatefromwbmp(): %croduct of memory allocation multiplication would exceed INT_MAX, failing operation gracefully%win %s on line %d 47 48Warning: imagecreatefromwbmp(): "%s_tmp.wbmp" is not a valid WBMP file in %s on line %d 49