Bug #73116 [Ver]: imagecreatefromjpeg fatal error on empty file
| From: | chupaka at gmail dot com | Date: | Wed, 05 Oct 2016 12:56:01 +0000 |
| Subject: | Bug #73116 [Ver]: imagecreatefromjpeg fatal error on empty file | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-204478@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
User updated by: chupaka at gmail 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:
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
#
Previous Comments:
------------------------------------------------------------------------
[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>
------------------------------------------------------------------------
[2016-10-05 11:57:34] ondrej@php.net
Seems the usual dichotomy between bundled and standalone gd library in:
```
/* Called by the IJG JPEG library upon encountering a fatal error */
static void fatal_jpeg_error(j_common_ptr cinfo)
{
jmpbuf_wrapper *jmpbufw;
- char buffer[JMSG_LENGTH_MAX];
- (*cinfo->err->format_message)(cinfo, buffer);
- gd_error_ex(GD_ERROR, "gd-jpeg: JPEG library reports unrecoverable error: %s",
buffer);
+ php_gd_error("gd-jpeg: JPEG library reports unrecoverable error: ");
+ (*cinfo->err->output_message) (cinfo);
jmpbufw = (jmpbuf_wrapper *)cinfo->client_data;
jpeg_destroy(cinfo);
if(jmpbufw != 0) {
longjmp(jmpbufw->jmpbuf, 1);
- gd_error_ex(GD_ERROR, "gd-jpeg: EXTREMELY fatal error: longjmp returned
control; terminating\n");
+ php_gd_error_ex(E_ERROR, "gd-jpeg: EXTREMELY fatal error: longjmp returned
control; terminating");
} else {
- gd_error_ex(GD_ERROR, "gd-jpeg: EXTREMELY fatal error: jmpbuf unrecoverable;
terminating\n");
+ php_gd_error_ex(E_ERROR, "gd-jpeg: EXTREMELY fatal error: jmpbuf unrecoverable;
terminating");
}
exit(99);
}
```
Different error handling in bundled GD library. Nothing packagers can do about.
------------------------------------------------------------------------
[2016-10-05 11:30:11] cmb@php.net
OndÅej, can you have a look at this issue please?
------------------------------------------------------------------------
[2016-10-05 11:15:18] eforcems at o2 dot pl
Hi, this is not only Fedora issue. I have the same issue on Kubuntu 16.04 from this repo http://ppa.launchpad.net/ondrej/php/ubuntu/
------------------------------------------------------------------------
[2016-09-24 21:52:12] cmb@php.net
Thanks for the version information.
I can reproduce the behavior in a very similar Fedora 24
environment, but not with the original libs, so this might be a
Fedora package issue.
Remi, could you please have a look at this issue?
------------------------------------------------------------------------
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