mirror of
https://github.com/php/php-src.git
synced 2026-04-29 11:13:36 +02:00
82df4e2638
getimagesize() is rather strict about the length of the marker payload data, and fails if there are extraneous bytes before the next marker. Only a very special case reported in bug #13213 is catered to. libjpeg is rather resilient to such corrupted JPEG files, and raises a recoverable error in this case. Other image processors also accept such JPEG files, so we adapt getimagesize() to skip (but warn about) such extraneous bytes.
34 lines
630 B
PHP
34 lines
630 B
PHP
--TEST--
|
|
Bug #72278 (getimagesize returning FALSE on valid jpg)
|
|
--SKIPIF--
|
|
<?php
|
|
if (!defined('IMAGETYPE_JPEG')) die('skip images of type JPEG not supported');
|
|
?>
|
|
--FILE--
|
|
<?php
|
|
define('FILENAME', __DIR__ . DIRECTORY_SEPARATOR . 'bug72278.jpg');
|
|
|
|
var_dump(getimagesize(FILENAME));
|
|
?>
|
|
===DONE===
|
|
--EXPECTF--
|
|
|
|
Warning: getimagesize(): corrupt JPEG data: 3 extraneous bytes before marker in %s%ebug72278.php on line %d
|
|
array(7) {
|
|
[0]=>
|
|
int(300)
|
|
[1]=>
|
|
int(300)
|
|
[2]=>
|
|
int(2)
|
|
[3]=>
|
|
string(24) "width="300" height="300""
|
|
["bits"]=>
|
|
int(8)
|
|
["channels"]=>
|
|
int(3)
|
|
["mime"]=>
|
|
string(10) "image/jpeg"
|
|
}
|
|
===DONE===
|