Re: GD segfault in 4.3.0RC1
| From: | Derick Rethans | Date: | Mon, 18 Nov 2002 12:07:59 +0000 |
| Subject: | Re: GD segfault in 4.3.0RC1 | ||
| References: | 1 2 3 4 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-91252@lists.php.net to get a copy of this message | ||
On Mon, 18 Nov 2002, Brian Havard wrote:
> Derick Rethans wrote:
> > On Sun, 17 Nov 2002, Derick Rethans wrote:
> >
> >
> >>On Sun, 17 Nov 2002, Brian Havard wrote:
> >>
> >>
> >>>When trying out the RC1 code I found that my GD test segfaults every time. I
> >>>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 emalloc etc in r1.3.
> >>
> >>Thanks, I'll check the whole source for strdup now.
> >
> >
> > Okay, 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.
>
> Ok, 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.
Derick
--
---------------------------------------------------------------------------
Derick Rethans http://derickrethans.nl/
JDI Media Solutions
--------------[ if you hold a unix shell to your ear, do you hear the c? ]-