[Xcb] Null pointer dereference in xcb_image_get

Bart Massey bart at cs.pdx.edu
Tue Aug 20 17:50:19 PDT 2013


IMHO we should fix the code regardless of whether we deprecate the
format, just for completeness. The buggy code is probably mine: I'll
try to look and it and figure out what I was thinking.

I'm pretty sure that I tested the XYPixmap case at some point? Maybe
not; what does "is completely broken" mean here?

--Bart

On Tue, Aug 20, 2013 at 7:19 AM, Peter Harris <pharris at opentext.com> wrote:
> On 2013-08-18 19:38, Alan Coopersmith wrote:
>> Our in-house static analyzer has reported:
>>
>> Error: Null pointer dereference
>>    Null pointer dereference (CWE 476): Read from null pointer image
>>         at line 339 of xcb/util-image/image/xcb_image.c in function
>> 'xcb_image_get'.
>>         at line 341 of xcb/util-image/image/xcb_image.c in function
>> 'xcb_image_get'.
>>
>> It seems to be correct from looking at the code:
>> http://cgit.freedesktop.org/xcb/util-image/tree/image/xcb_image.c#n300
>>
>> image is set to 0 at line 313, and isn't set to another value until 355,
>> well after the uses at 339 & 341.
>>
>> I'm not sure what the fix should be - from the src_plane & dst_plane
>> references
>> in 339 & 340, it appears the code believes there should be two distinct
>> images
>> here, but I don't know at where or to what image should be set to make that
>> true.  My best guess is something in imrep should be used.  Anyone know?
>
> Looks like it should be 339:"src_plane = data", 341:"size =
> tmp_image->height * tmp_image->stride", 346:"if (rpm & (1 << i))", and
> 371:"assert(bytes == image->size)" should be moved up into the ZPixmap case.
>
> I didn't send this in patch format partly because I didn't even compile
> it, but mostly for the following reason:
>
> Given that XYPixmap is completely broken, nobody can be using it. There
> are probably more bugs lurking. Perhaps the best fix is to document that
> only ZPixmap is a valid argument to xcb_image_get and remove the whole
> XCB_IMAGE_FORMAT_XY_PIXMAP case entirely.
>
> Peter Harris
> --
>                Open Text Connectivity Solutions Group
> Peter Harris                    http://connectivity.opentext.com/
> Research and Development        Phone: +1 905 762 6001
> pharris at opentext.com            Toll Free: 1 877 359 4866
> _______________________________________________
> Xcb mailing list
> Xcb at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xcb


More information about the Xcb mailing list