[Bug: 21.5-b29] Crash when displaying gif

Vin Shelton acs at xemacs.org
Thu Aug 26 13:25:02 EDT 2010


Yes.  I have generated a ChangeLog and attached it to your patch.  I
am posting this amalgam to xemacs-patches and will apply the change
tonight.

Thank you!

  - Vin

On Wed, Aug 25, 2010 at 5:07 AM, Adam Sjøgren <asjo at koldfront.dk> wrote:
>  Hi Vin,
>
>
> Have you had a chance to look at incorporating this patch in XEmacs?
>
>
>  Best regards,
>
>    Adam, hoping I am not to naggy.
>
>
> On Fri, 20 Aug 2010 06:49:12 -0400, Vin wrote:
>
>> Adam -
>> Thanks for digging in on this.  You're not entirely by yourself - I
>> tried out your killer gif on my cygwin Windows build, and
>> unsurprisingly, XEmacs crashed immediately.
>
>> On Fri, Aug 20, 2010 at 4:56 AM, Adam Sjøgren <asjo at koldfront.dk> wrote:
>
>>> (Continuing talking to myself:)
>
>>> I've checked how other code handles color maps when reading gifs
>>> (specifically libimlib2-dev in Debian), and the following patch fixes
>>> the problem I encountered and makes the logo.gif in Mike Kupfers issue
>>> #713 show correctly (same as in Firefox):
>>>
>>> diff -r 04811a268716 -r 2519c46c4b9b src/glyphs-eimage.c
>>> --- a/src/glyphs-eimage.c       Sun Aug 15 15:42:45 2010 +0100
>>> +++ b/src/glyphs-eimage.c       Fri Aug 20 10:49:12 2010 +0200
>>> @@ -694,7 +694,7 @@
>>>
>>>   /* 3. Now create the EImage(s) */
>>>   {
>>> -    ColorMapObject *cmo = unwind.giffile->SColorMap;
>>> +    ColorMapObject *cmo = (unwind.giffile->Image.ColorMap ? unwind.giffile->Image.ColorMap : unwind.giffile->SColorMap);
>>>     int i, j, row, pass, interlace, slice;
>>>     UINT_64_BIT pixels_sq;
>>>     Binbyte *eip;
>>> @@ -703,6 +703,9 @@
>>>     static int InterlacedOffset[] = { 0, 4, 2, 1 };
>>>     static int InterlacedJumps[] = { 8, 8, 4, 2 };
>>>
>>> +    if (cmo == NULL)
>>> +      signal_image_error ("GIF image has no color map", instantiator);
>>> +
>>>     height = unwind.giffile->SHeight;
>>>     width = unwind.giffile->SWidth;
>>>     pixels_sq = (UINT_64_BIT) width * (UINT_64_BIT) height;
>
>> I much prefer this version of the fix.  :-)
>
>>> I'm sure I haven't submitted this patch in the correct way, as I haven't
>>> had the time (nor momentum) to look into patcher etc. I hope someone
>>> will pick it up anyway.
>
>> I'll try this out by Sunday or Monday if no one else gets to this first.
>
>> Regards,
>>   Vin
>
> --
>  "But we are stubborn."                                       Adam Sjøgren
>                                                         asjo at koldfront.dk
>



More information about the XEmacs-Beta mailing list