Bug #74428 [Com]: exif_read_data(): "Illegal IFD size" warning occurs with correct exif format.
Edit report at https://bugs.php.net/bug.php?id=74428&edit=1
ID: 74428
Comment by: me at sej dot de
Reported by: bradpiccho at gmail dot com
Summary: exif_read_data(): "Illegal IFD size" warning occurs
with correct exif format.
Status: Open
Type: Bug
Package: EXIF related
Operating System: Any
PHP Version: 5.6.30
Block user comment: N
Private report: N
New Comment:
I have this bug with PHP 7.0.15 also.
php -v
PHP 7.0.15-0ubuntu0.16.04.4 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.15-0ubuntu0.16.04.4, Copyright (c) 1999-2017, by Zend Technologies
Warning: exif_read_data(IMG_8660_filt.JPG): IFD data bad offset: 0xFFFFFCF0 length 0x1042 in
/httpdocs/devexif/test.php on line 6
array(34) { ["FileName"]=> string(17) "IMG_8660_filt.JPG"
["FileDateTime"]=> int(1493146490) ["FileSize"]=> int(865216)
["FileType"]=> int(2) ["MimeType"]=> string(10) "image/jpeg"
["SectionsFound"]=> string(30) "ANY_TAG, IFD0, EXIF, MAKERNOTE"
["COMPUTED"]=> array(7) { ["html"]=> string(25)
"width="1200" height="800"" ["Height"]=> int(800)
["Width"]=> int(1200) ["IsColor"]=> int(1)
["ByteOrderMotorola"]=> int(0) ["ApertureFNumber"]=> string(5)
"f/5.6" ["Copyright"]=> string(13) "Andreas Knote" }
["Make"]=> string(5) "Canon" ["Model"]=> string(13) "Canon
EOS 60D" ["Orientation"]=> int(1) ["XResolution"]=> string(5)
"350/1" ["YResolution"]=> string(5) "350/1"
["ResolutionUnit"]=> int(2) ["Software"]=> string(26) "Digital Photo
Professional" ["DateTime"]=> string(19) "2017:04:25 18:41:24"
["Artist"]=> string(13) "Andreas Knote" ["YCbCrPositioning"]=>
int(1) ["Copyright"]=> string(13) "Andreas Knote"
["ExposureTime"]=> string(5) "1/500" ["FNumber"]=> string(5)
"56/10" ["Exposur!
eProgram"]=> int(4) ["ISOSpeedRatings"]=> int(125)
["UndefinedTag:0x8830"]=> int(2) ["UndefinedTag:0x8832"]=> int(125)
["ExifVersion"]=> string(4) "0230" ["DateTimeOriginal"]=>
string(19) "2017:04:25 18:41:24" ["DateTimeDigitized"]=> string(19)
"2017:04:25 18:41:24" ["ComponentsConfiguration"]=> string(4) ""
["ShutterSpeedValue"]=> string(12) "589824/65536"
["ApertureValue"]=> string(12) "327680/65536"
["ExposureBiasValue"]=> string(3) "1/3" ["MeteringMode"]=>
int(5) ["Flash"]=> int(16) ["FocalLength"]=> string(5) "160/1" }
Previous Comments:
------------------------------------------------------------------------
[2017-04-13 06:47:24] bradpiccho at gmail dot com
Description:
------------
EXIF data that doesn't have any IFD with offset to data value(i.e. all IFDs have less than
4bytes data length values) and thumbnail data is not read correctly by exif_read_data().
sample image:
https://gist.githubusercontent.com/yoshitaka-sato/c5b6816231f675806417b1cf2793134e/raw/0a609217ee557c030a79dd09f71700564e30363e/exif_sample.jpg
I think the problem is due to the incorrect comparison at line 3188 of ext/exif/exif.c.
it seems that the oerator must be ">" instead of ">=".
In the same way, I think the comparison at line 3160 must use ">" instead of
">=".
Test script:
---------------
<?php
ini_set('display_errors', 'On');
exif_read_data('./exif_sample.jpg');
?>
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=74428&edit=1
Thread (4 messages)