ID: 35498
User updated by: paniemin at cc dot hut dot fi
Reported By: paniemin at cc dot hut dot fi
Status: Assigned
Bug Type: GD related
Operating System: Redhat Linux 7.3
PHP Version: 5.1.0
Assigned To: pajoye
New Comment:
Problem is in jpeg library but problems is that there isn't enought
memory! But I haven't enabled memory limit.
jmemmgr.c:
in alloc_large function:
hdr_ptr = (large_pool_ptr) jpeg_get_large(cinfo, sizeofobject +
SIZEOF(large_pool_hdr));
if (hdr_ptr == NULL)
out_of_memory(cinfo, 4); /* jpeg_get_large failed */
jpeg_get_large is just system specifig warepper for malloc call.
The problem is in jpeg_start_decompress call from php GD library in
gdImageCreateFromJpegCtx function (gd_jpeg.c).
But when I try to run the php code in shell there is no problems. I
quess that maybe some limits in apache that is runnig php in cgi mode.
Previous Comments:
------------------------------------------------------------------------
[2005-12-01 12:29:42] [EMAIL PROTECTED]
Assigned to the maintainer.
------------------------------------------------------------------------
[2005-12-01 10:45:31] paniemin at cc dot hut dot fi
First I tryed to us blunded but when that failed I tested external
library. I will try to find the location of bug in php source later
today when I will be back home.
Btw, corect version is 5.1.0 (the public release).
------------------------------------------------------------------------
[2005-12-01 10:24:43] [EMAIL PROTECTED]
Try with the bundled GD, it's known to be less buggy and well
maintained.
------------------------------------------------------------------------
[2005-12-01 01:18:25] paniemin at cc dot hut dot fi
Description:
------------
I tryed to upgrade from 5.0.4 to 5.1. I use blunded GD version with
freetype2, jpeg and png libraries. First I tried with old libraries
that I used to build 5.0.4. Next I downloaded new version from
freetype2. Next I downloaded GD 2.0.33 and tryed with it. I tried to
find the problematic part but I failed to locate it outside php :(
I found that imagecreatefromjpeg() fails to open jpeg files that older
php version opened without problems. The failure to open seems to be
random but about 60-70% images are 'corruped' for gd library.
here is one of corrupted images:
http://antin.net/imageshu/7363_1.jpg
I will continue searching the real reason for this bug. I hope someone
else can confirm same problem with 5.1 and GD.
Reproduce code:
---------------
$file = getFileForPerson($id, $imageNumber);
$img = imagecreatefromjpeg($file);
Expected result:
----------------
I excepted imagecreatefromjpeg to load the image so next steps in code
can manipulate it.
Actual result:
--------------
Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg:
JPEG library reports unrecoverable error: in
/home/customers/antin/public_html/huippu/ranki_dev.cgi on line 110
Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]:
'../imageshu/7363_1.jpg' is not a valid JPEG file in
/home/customers/antin/public_html/huippu/ranki_dev.cgi on line 110
With GD 2.0.33 the first warning is skipped which seems natural for me.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=35498&edit=1