|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2005-12-01 01:18 UTC] 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. PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Nov 30 03:00:01 2025 UTC |
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.