diff --git a/NEWS b/NEWS index baa991b9625..929eb33fc64 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,8 @@ PHP NEWS Samsung, DJI & Panasonic. (Kalle) . Fixed bug #72682 (exif_read_data() fails to read all data for some images). (Kalle) + . Fixed bug #68547 (Exif Header component value check error). + (sjh21a at gmail dot com, Kalle) . Fixed bug #66443 (Corrupt EXIF header: maximum directory nesting level reached for some cameras). (Kalle) . Fixed Redhat bug #1362571 (PHP not returning full results for diff --git a/ext/exif/exif.c b/ext/exif/exif.c index 75ff992cf73..2618d749a3f 100644 --- a/ext/exif/exif.c +++ b/ext/exif/exif.c @@ -3058,7 +3058,7 @@ static int exif_process_IFD_TAG(image_info_type *ImageInfo, char *dir_entry, cha /*return TRUE;*/ } - if (components < 0) { + if (components <= 0) { exif_error_docref("exif_read_data#error_ifd" EXIFERR_CC, ImageInfo, E_WARNING, "Process tag(x%04X=%s): Illegal components(%ld)", tag, exif_get_tagname(tag, tagname, -12, tag_table), components); return FALSE; } diff --git a/ext/exif/tests/bug68547.jpg b/ext/exif/tests/bug68547.jpg new file mode 100644 index 00000000000..2a328b76a80 Binary files /dev/null and b/ext/exif/tests/bug68547.jpg differ diff --git a/ext/exif/tests/bug68547.phpt b/ext/exif/tests/bug68547.phpt new file mode 100644 index 00000000000..3773ebb34c7 --- /dev/null +++ b/ext/exif/tests/bug68547.phpt @@ -0,0 +1,12 @@ +--TEST-- +Bug #68547 (Exif Header component value check error) +--SKIPIF-- + +--FILE-- + +===DONE=== +--EXPECTF-- +Warning: exif_read_data(bug68547.jpg): Process tag(x9C9E=Keywords ): Illegal components(0) in %sbug68547.php on line %d +===DONE=== \ No newline at end of file diff --git a/ext/exif/tests/bug68799.phpt b/ext/exif/tests/bug68799.phpt index f50a41b4020..1f10fcf69e9 100644 --- a/ext/exif/tests/bug68799.phpt +++ b/ext/exif/tests/bug68799.phpt @@ -39,6 +39,7 @@ print_r(exif_read_data(__DIR__.'/bug68799.jpg')); ?> --EXPECTF-- +Warning: exif_read_data(bug68799.jpg): Process tag(x9C9D=Author ): Illegal components(0) in %s on line %d Array ( [FileName] => bug68799.jpg @@ -46,7 +47,7 @@ Array [FileSize] => 735 [FileType] => 2 [MimeType] => image/jpeg - [SectionsFound] => ANY_TAG, IFD0, WINXP + [SectionsFound] => ANY_TAG, IFD0 [COMPUTED] => Array ( [html] => width="1" height="1" @@ -59,5 +60,4 @@ Array [XResolution] => 96/1 [YResolution] => 96/1 [ResolutionUnit] => 2 - [Author] => ) diff --git a/ext/exif/tests/bug72094.phpt b/ext/exif/tests/bug72094.phpt index 611faf9152d..ba7d291ffca 100644 --- a/ext/exif/tests/bug72094.phpt +++ b/ext/exif/tests/bug72094.phpt @@ -23,7 +23,7 @@ Warning: exif_read_data(bug72094_1.jpg): Process tag(x3030=UndefinedTa): Illegal Warning: exif_read_data(bug72094_1.jpg): Process tag(x8298=Copyright ): Illegal format code 0x3030, suppose BYTE in %s%ebug72094.php on line %d -Warning: exif_read_data(bug72094_1.jpg): Illegal IFD offset in %s%ebug72094.php on line %d +Warning: exif_read_data(bug72094_1.jpg): Illegal IFD offset in %sbug72094.php on line %d Warning: exif_read_data(bug72094_1.jpg): File structure corrupted in %s%ebug72094.php on line %d @@ -47,7 +47,7 @@ Warning: exif_read_data(bug72094_3.jpg): Process tag(x3030=UndefinedTa): Illegal Warning: exif_read_data(bug72094_3.jpg): Process tag(x3030=UndefinedTa): Illegal format code 0x3030, suppose BYTE in %s%ebug72094.php on line %d -Warning: exif_read_data(bug72094_3.jpg): Illegal IFD size in %s%ebug72094.php on line %d +Warning: exif_read_data(bug72094_3.jpg): Process tag(x3030=UndefinedTa): Illegal components(0) in %s%ebug72094.php on line %d Warning: exif_read_data(bug72094_3.jpg): File structure corrupted in %s%ebug72094.php on line %d