Edit report at http://bugs.php.net/bug.php?id=50660&edit=1
ID: 50660 Comment by: mjk at emmjaykay dot org Reported by: skinny dot bravo at gmail dot com Summary: exif_read_data(): Illegal IFD offset (works fine with other exif readers) Status: Verified Type: Bug Package: EXIF related Operating System: Linux PHP Version: 5.*, 6 Block user comment: N Private report: N New Comment: The issue stems from exif.c's exif_process_IFD_in_JPEG() function where it calculates NextDirOffset. If this means what I think it does, for EXIF_IFD and IFD_GPS, there is no next IFD and no further parsing should take place. Right now, it parses into the string for the next entry (2009...) I am not sure if this is correct since I am no expert on EXIF. The output of var_dump seems to be still in-correct, though. I do not know if this is a separate issue or something I introduced with this patch. Previous Comments: ------------------------------------------------------------------------ [2010-01-06 12:49:45] skinny dot bravo at gmail dot com Sorry, - php5.2-201001041530 produces the same result + php5.2-201001041530 produces the same result as 5.2.12 below ------------------------------------------------------------------------ [2010-01-06 12:42:40] il...@php.net If it works with php5.2-201001041530 it means that the issue has been resolved. ------------------------------------------------------------------------ [2010-01-04 17:55:52] skinny dot bravo at gmail dot com Description: ------------ PHP fails reading GPS data from a given set of photos from Samsung SGH- i900. The images are said to come from the camera without any edits. Ex: http://o1.imgsrc.ru/v/vahmurka/3/16095163cDU.jpg http://o1.imgsrc.ru/v/vahmurka/1/16095161rno.jpg exiftool 8.00 has no problem reading this file. php5.2-201001041530 produces the same result. Reproduce code: --------------- # php -r 'var_dump(read_exif_data("16095163cDU.jpg",NULL,TRUE));' Expected result: ---------------- ... ["SectionsFound"]=> string(35) "ANY_TAG, IFD0, THUMBNAIL, EXIF, GPS" ... ["GPS"]=> array(8) { ["GPSVersion"]=> string(4) "" ["GPSLatitudeRef"]=> string(1) "N" ["GPSLatitude"]=> array(3) { [0]=> string(4) "43/1" [1]=> string(4) "16/1" [2]=> string(11) "75363/10000" } ["GPSLongitudeRef"]=> string(1) "E" ["GPSLongitude"]=> array(3) { [0]=> string(4) "77/1" [1]=> string(4) "21/1" [2]=> string(11) "140249/2629" } ["GPSAltitudeRef"]=> string(1) "" ["GPSAltitude"]=> string(6) "1603/1" ["GPSMapDatum"]=> string(6) "WGS-84" } these results are taken after fixing image with exiftool: # exiftool -all= -tagsfromfile @ -all:all -unsafe 16095163cDU.jpg Actual result: -------------- Warning: read_exif_data(16095163cDU.jpg): Illegal IFD offset in Command line code on line 1 array(4) { ["FILE"]=> array(6) { ["FileName"]=> string(15) "16095163cDU.jpg" ["FileDateTime"]=> int(1259257839) ["FileSize"]=> int(938692) ["FileType"]=> int(2) ["MimeType"]=> string(10) "image/jpeg" ["SectionsFound"]=> string(19) "ANY_TAG, IFD0, EXIF" } ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=50660&edit=1