Bug #80016 [Fbk->Asn]: PHP Warning: exif_thumbnail: Illegal IFD size

From: Date: Wed, 26 Aug 2020 17:30:27 +0000
Subject: Bug #80016 [Fbk->Asn]: PHP Warning: exif_thumbnail: Illegal IFD size
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-228759@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=80016&edit=1

 ID:                 80016
 User updated by:    7tonin at laposte dot net
 Reported by:        7tonin at laposte dot net
 Summary:            PHP Warning:  exif_thumbnail: Illegal IFD size
-Status:             Feedback
+Status:             Assigned
 Type:               Bug
 Package:            EXIF related
 Operating System:   linux 5.7.14-desktop-1.mga7 x86
 PHP Version:        7.3.21
 Assigned To:        cmb
 Block user comment: N
 Private report:     N

 New Comment:

I did at [2020-08-26 16:03 UTC]


Previous Comments:
------------------------------------------------------------------------
[2020-08-26 16:40:02] cmb@php.net

Could you send the image to me, please?

------------------------------------------------------------------------
[2020-08-26 16:10:19] 7tonin at laposte dot net

Sorry, when file.io is used for free, there is just one download available. That's pretty
short. So I will send the image to anyone asking for.

Work around, if you have got ImageMagick on the server, here is a fallback to fill $thumb_data :
$thumb_data = exif_thumbnail($image_source_filename, $width, $height, $type) ;
if ($thumb_data==false) 
{
   $return_var=null;
   $type='image/jpeg';
   
   ob_start();
   passthru('exiftool -b -thumbnailImage '.$image_source_filename, $return_var);
   $thumb_data = ob_get_contents();
   ob_end_clean(); 
}

This fallback shows ImageMagick is able to retrieve exif thumbnail.

------------------------------------------------------------------------
[2020-08-25 06:32:08] cmb@php.net

> try this file (uploaded twice for free)
> https://file.io/0J2TmIc9gNpR (1w expiry link)
> https://file.io/XFJoy5XoQtd0

Both links give page not found for me.  Could you please check?

------------------------------------------------------------------------
[2020-08-24 19:41:23] 7tonin at laposte dot net

Description:
------------
Hi,
while trying to get EXIF thumbnail, some of my crafted pictures (Hugin, Gimp, Imagemagick, Exiftool)
lead my webserver to two warnings:

PHP Warning:  exif_thumbnail(cloud.jpg): Illegal IFD size: 2 + 0x9D00*12 = 0x75C02 > 0x6D78 
PHP Warning:  exif_read_data(cloud.jpg): Illegal IFD size: 2 + 0x9D00*12 = 0x75C02 > 0x6D78

(this is the same size data for any picture)

Another bad thing is file permissions are then changed to apache:apache

Test script:
---------------
try this file (uploaded twice for free)
https://file.io/0J2TmIc9gNpR (1w expiry link)
https://file.io/XFJoy5XoQtd0

Let's call it cloud.jpg

<?php 
$stream = '/path/to/cloud.jpg' ;

if ($exif = exif_read_data($stream, 0, true)) {
    echo "$stream :<br />\n";
    foreach ($exif as $key => $section) {
        foreach ($section as $name => $val) {
            echo "$key.$name : $val<br />\n";
        }
    }
    
    $thumbnail = exif_thumbnail($stream, $width, $height, $type);
    echo "<img  width='$width' height='$height'
src='data:image/gif;base64,".base64_encode($thumbnail)."'>";
}
?>



------------------------------------------------------------------------



--
Edit this bug report at https://bugs.php.net/bug.php?id=80016&edit=1


Thread (9 messages)

« previous php.bugs (#228759) next »