Bug #73116 [Com]: imagecreatefromjpeg fatal error on empty file
| From: | mail at adrian-kirchner dot com | Date: | Wed, 16 Nov 2016 14:24:17 +0000 |
| Subject: | Bug #73116 [Com]: imagecreatefromjpeg fatal error on empty file | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-205408@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=73116&edit=1
ID: 73116
Comment by: mail at adrian-kirchner dot com
Reported by: chupaka at gmail dot com
Summary: imagecreatefromjpeg fatal error on empty file
Status: Verified
Type: Bug
Package: GD related
Operating System: Fedora 24
PHP Version: 5.6.26
Block user comment: N
Private report: N
New Comment:
Are there chances, that your patch [1] gets merged into the 5.6-branch so it finds its way into
distributions like Debian?
On Debian the problem still exists because it has only the patch [2] which does not work with shared
libgd [3].
```
# php -v
PHP 5.6.27-0+deb8u1 (cli) (built: Oct 15 2016 15:53:28)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
# touch test.jpg
# php -r "imagecreatefromjpeg('test.jpg');"
PHP Fatal error: imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error: Empty
input file in Command line code on line 1
```
[1] <http://git.php.net/?p=php-src.git;a=commit;h=432e16cb>
[2] <http://git.php.net/?p=php-src.git;a=commitdiff;h=6cb75fb1e8208d79f58351340923059d0d077ee6;hp=8b905e337c0e88ec66a25e4b7dbbd5c87279ea75>
[3] <http://sources.debian.net/src/php5/5.6.27%2Bdfsg-0%2Bdeb8u1/ext/gd/gd.c/#L72>
Previous Comments:
------------------------------------------------------------------------
[2016-11-14 15:43:51] cmb@php.net
Related To: Bug #73514
------------------------------------------------------------------------
[2016-10-18 15:18:58] cmb@php.net
> Seems the usual dichotomy between bundled and standalone gd
> library in:
> [â¦]
There shouldn't be a problem, as gd_error() is supposed to forward
to php_gd_error() anyway[1]. I've nonetheless improved that
recently[2].
Anyhow, with regard to the actual issue I'm at a loss. It seems
that libjpeg-turbo always raises a fatal error if it detects empty
input files[3]. I can't reproduce this, however, with "plain"
libjpeg-turbo builds.
[1] <https://github.com/php/php-src/blob/PHP-7.0.12/ext/gd/gd.c#L1054-L1056>
[2] <http://git.php.net/?p=php-src.git;a=commit;h=432e16cb>
[3] <https://github.com/libjpeg-turbo/libjpeg-turbo/search?utf8=%E2%9C%93&q=JERR_INPUT_EMPTY>
------------------------------------------------------------------------
[2016-10-05 14:52:29] cmb@php.net
> PHP Unknown error: imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error:
> Empty input file in
Exactly that issue (namely that the severity of GD errors has not
been mapped correctly to PHP errors) has been fixed as of PHP
5.6.25.
Maybe this issue is related to the libjpeg version/variant. I'll
have another look at it.
------------------------------------------------------------------------
[2016-10-05 12:56:00] chupaka at gmail dot com
Rolled back to 5.6.22 - and it works without fatal error:
# php -v
PHP 5.6.22 (cli) (built: May 26 2016 13:54:01)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
# php test.php
PHP Warning: imagecreatefromjpeg(notexist): failed to open stream: No such file or directory in
/test.php on line 5
PHP Unknown error: imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error: Empty
input file in Unknown on line 0
PHP Warning: imagecreatefromjpeg(): 'emptyfile' is not a valid JPEG file in /test.php on
line 6
Continue with error handling
#
------------------------------------------------------------------------
[2016-10-05 12:30:29] cmb@php.net
Even with an "official" external libgd I couldn't reproduce the
issue, so this might be a packaging issue.
I think it has to do with commit 6cb75fb1[1] which is supposed to
be available as of PHP 5.6.25.
[1] <https://github.com/php/php-src/commit/6cb75fb1>
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=73116
--
Edit this bug report at https://bugs.php.net/bug.php?id=73116&edit=1