Re: GD segfault in 4.3.0RC1
| From: | (Marcus Börger) | Date: | Mon, 18 Nov 2002 12:31:58 +0000 |
| Subject: | Re: GD segfault in 4.3.0RC1 | ||
| References: | 1 2 3 4 5 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-91255@lists.php.net to get a copy of this message | ||
At 13:07 18.11.2002, Derick Rethans wrote:
On Mon, 18 Nov 2002, Brian Havard wrote: Derick Rethans wrote:Brian could you create a short test for the segfault? It would help us finding out the problems. marcusOn Sun, 17 Nov 2002, Derick Rethans wrote:time. IOn Sun, 17 Nov 2002, Brian Havard wrote:When trying out the RC1 code I found that my GD test segfaults everyetc in r1.3.traced the problem to the fact that efree is used on memory that was allocated with strdup. See the fontlist variable in ext\gd\libgd\gdft.c:fontFetch() This started happening when gdhelpers.c was changed to use emallocOk, that's better but there's still a problem when running as an Apache module. It crashes on the 2nd image request & changing gdhelpers.c back to using malloc/free/strdup cures it. I haven't traced it but my money's on the font cache which is meant to be persistent between images (see "static gdCache_head_t *fontCache" at gdft.c:721) but is allocated with gdMalloc() & therefore emalloc() in gdCacheCreate(). yeah, I'm going to revert back to the original memory management functions, it needs some thourough checking before we can swap again. DerickOkay, I committed this, but I found that some of the functions use malloc, others emalloc and more others use gdMalloc (which is a wrapper for emalloc). I don't think this is what we want, but I'm also afraid that changing everything to the gd* functions is a bad thing, as some of the structures should be persistent.Thanks, I'll check the whole source for strdup now.