From:             camka at email dot ee
Operating system: WinXP, Linux
PHP version:      5.2.1RC2
PHP Bug Type:     EXIF related
Bug description:  exif_read_data dies on certain images

Description:
------------
PHP dies on certain files format while reading exif data with
exif_read_date because of some maximum directory nesting level reached.
The function should return FALSE and let the program flow further.
Otherwice misformated image processing may kill script and break the
program logic.

Even if i suppress warnings with @ sign, i still cannot manage to let the
program go further after unsuccessfull reading exif data.

broken file:
http://www.hot.ee/camka/orig.phpJCN9Ir.jpg

Tried with 5.1.6, 5.2.0 and latest snapshot of 5.2.1.

P.S. All editors successfully show EXIF data for current file, so maybe
it's not misformatted exif data but exif extension cannot process some
newer exif formats?

Reproduce code:
---------------
<?
$z = exif_read_data('orig.phpJCN9Ir.jpg', 'FILE,COMPUTED,IFD0,EXIF', true,
false);
var_dump($z);


Expected result:
----------------
[...Errors (see below)...]
FALSE

Actual result:
--------------
$ php exif.php
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Illegal IFD size: x04F6
+ 2 + xFFF1*12 = xC0442 > x16BF in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0002=UndefinedTa): Illegal format code 0x0020, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0002=UndefinedTa): Illegal pointer offset(x10F0000 + x10A0000 =
x2190000 > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0002=UndefinedTa): Illegal format code 0x0014, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0002=UndefinedTa): Illegal pointer offset(x1100000 + x12A0000 =
x23A0000 > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0002=UndefinedTa): Illegal format code 0x0011, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0002=UndefinedTa): Illegal pointer offset(x1120000 + x13E0000 =
x2500000 > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0003=UndefinedTa): Illegal pointer offset(x11AFF1A + x10000 =
x11BFF1A > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0005=UndefinedTa): Illegal pointer offset(x11B0000 + x14F0000 =
x26A0000 > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0005=UndefinedTa): Illegal pointer offset(x1280000 + x1570000 =
x27F0000 > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0003=UndefinedTa): Illegal pointer offset(x131FF97 + x20000 =
x133FF97 > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0002=UndefinedTa): Illegal pointer offset(x1320000 + x57C0000 =
x6AE0000 > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0002=UndefinedTa): Illegal format code 0x0014, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0002=UndefinedTa): Illegal pointer offset(x2130000 + x1680000 =
x37B0000 > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0003=UndefinedTa): Illegal pointer offset(xA401FF9C + x20000 =
xA403FF9C > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0005=UndefinedTa): Illegal pointer offset(xA4060000 + x17C0000 =
xA5820000 > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0003=UndefinedTa): Illegal pointer offset(xA408FF9F + x10000 =
xA409FF9F > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0007=UndefinedTa): Illegal format code 0x0104, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0007=UndefinedTa): Illegal pointer offset(x87690000 + x1840000 =
x88ED0000 > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0004=UndefinedTa): Illegal pointer offset(x7C70000 + x2880000 =
xA4F0000 > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0000=UndefinedTa): Illegal format code 0x4C4F, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0000=UndefinedTa): Illegal pointer offset(x49442053 + x55504D59 =
x9E946DAC > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x4947=UndefinedTa): Illegal format code 0x4154, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x4947=UndefinedTa): Illegal pointer offset(x4152454D + x4143204C =
x82956599 > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x2020=UndefinedTa): Illegal format code 0x2020, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x2020=UndefinedTa): Illegal pointer offset(x4C4F0020 + x20202020 =
x6C6F2040 > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x4D59=UndefinedTa): Illegal format code 0x5550, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x4D59=UndefinedTa): Illegal pointer offset(x524F5052 + x4F432053 =
xA19270A5 > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x5441=UndefinedTa): Illegal format code 0x4F49, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x5441=UndefinedTa): Illegal pointer offset(x442C3035 + x3358004E =
x77843083 > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x3735=UndefinedTa): Illegal format code 0x5A35, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x3735=UndefinedTa): Illegal pointer offset(x48005A30 + x3633432C =
x7E339D5C > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0000=UndefinedTa): Illegal format code 0x0100, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0000=UndefinedTa): Illegal pointer offset(x1000000 + x48000000 =
x49000000 > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0000=UndefinedTa): Illegal format code 0x7600, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0000=UndefinedTa): Illegal pointer offset(x36372D + x75383537 =
x756E6C64 > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x3032=UndefinedTa): Illegal format code 0x3530, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x3032=UndefinedTa): Illegal pointer offset(x31203531 + x3A37303A =
x6B57656B > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x3A32=UndefinedTa): Illegal format code 0x3134, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x3A32=UndefinedTa): Illegal pointer offset(x0000 < x8278E48) in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0064=UndefinedTa): Illegal format code 0x0000, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0064=UndefinedTa): Illegal pointer offset(x4D4974 + x6E697250 =
x6EB6BBC4 > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x3230=UndefinedTa): Illegal format code 0x3035, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x3230=UndefinedTa): Illegal pointer offset(x140001 + x140000 = x280001
> x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0000=UndefinedTa): Illegal format code 0x0100, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0000=UndefinedTa): Illegal format code 0x0102, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0000=UndefinedTa): Illegal pointer offset(x830103 + x0083 = x830186 >
x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0000=UndefinedTa): Illegal format code 0x0104, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0000=UndefinedTa): Illegal pointer offset(x830105 + x0083 = x830188 >
x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0000=UndefinedTa): Illegal format code 0x0106, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0000=UndefinedTa): Illegal pointer offset(x80800107 + x0083 =
x8080018A > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0080=UndefinedTa): Illegal format code 0x0110, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x2710=UndefinedTa): Illegal format code 0x0000, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0597=UndefinedTa): Illegal format code 0x0000, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x2710=UndefinedTa): Illegal format code 0x0000, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x025E=UndefinedTa): Illegal format code 0x0000, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x2710=UndefinedTa): Illegal format code 0x0000, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x1BE5=UndefinedTa): Illegal format code 0x0000, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0000=UndefinedTa): Illegal format code 0x0000, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0000=UndefinedTa): Illegal format code 0x0000, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0000=UndefinedTa): Illegal format code 0x0000, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0005=UndefinedTa): Illegal pointer offset(x829D0000 + x3B80000 =
x86550000 > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0018=UndefinedTa): Illegal format code 0x829A, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0018=UndefinedTa): Illegal pointer offset(x3AA0000 + x10005 =
x3AB0005 > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0000=UndefinedTa): Illegal format code 0x829D, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0000=UndefinedTa): Illegal pointer offset(x3B20000 + x10005 =
x3B30005 > x16BF) in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): Process
tag(x0000=UndefinedTa): Illegal format code 0x8822, suppose BYTE in
exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): corrupt EXIF header:
maximum directory nesting level reached in exif.php on line 2
PHP Warning:  exif_read_data(orig.phpJCN9Ir.jpg): corrupt EXIF header:
maximum directory nesting level reached in exif.php on line 2
Segmentation fault


-- 
Edit bug report at http://bugs.php.net/?id=40073&edit=1
-- 
Try a CVS snapshot (PHP 4.4): 
http://bugs.php.net/fix.php?id=40073&r=trysnapshot44
Try a CVS snapshot (PHP 5.2): 
http://bugs.php.net/fix.php?id=40073&r=trysnapshot52
Try a CVS snapshot (PHP 6.0): 
http://bugs.php.net/fix.php?id=40073&r=trysnapshot60
Fixed in CVS:                 http://bugs.php.net/fix.php?id=40073&r=fixedcvs
Fixed in release:             
http://bugs.php.net/fix.php?id=40073&r=alreadyfixed
Need backtrace:               http://bugs.php.net/fix.php?id=40073&r=needtrace
Need Reproduce Script:        http://bugs.php.net/fix.php?id=40073&r=needscript
Try newer version:            http://bugs.php.net/fix.php?id=40073&r=oldversion
Not developer issue:          http://bugs.php.net/fix.php?id=40073&r=support
Expected behavior:            http://bugs.php.net/fix.php?id=40073&r=notwrong
Not enough info:              
http://bugs.php.net/fix.php?id=40073&r=notenoughinfo
Submitted twice:              
http://bugs.php.net/fix.php?id=40073&r=submittedtwice
register_globals:             http://bugs.php.net/fix.php?id=40073&r=globals
PHP 3 support discontinued:   http://bugs.php.net/fix.php?id=40073&r=php3
Daylight Savings:             http://bugs.php.net/fix.php?id=40073&r=dst
IIS Stability:                http://bugs.php.net/fix.php?id=40073&r=isapi
Install GNU Sed:              http://bugs.php.net/fix.php?id=40073&r=gnused
Floating point limitations:   http://bugs.php.net/fix.php?id=40073&r=float
No Zend Extensions:           http://bugs.php.net/fix.php?id=40073&r=nozend
MySQL Configuration Error:    http://bugs.php.net/fix.php?id=40073&r=mysqlcfg

Reply via email to