[Mesa-dev] [PATCH 03/13] glx: Fix handling of property list received from the server in glXImportContextEXT

Ian Romanick idr at freedesktop.org
Fri Dec 16 17:20:21 PST 2011


On 12/16/2011 03:33 PM, Eric Anholt wrote:
> On Fri, 16 Dec 2011 11:55:40 -0800, "Ian Romanick"<idr at freedesktop.org>  wrote:
>> From: Ian Romanick<ian.d.romanick at intel.com>
>>
>> NOTE: This is a candidate for the 7.11 branch.
>
> I couldn't work out what was actually being fixed here, unless
> it's "fbconfigid should take precedence over visualid".

Crap.  I thought I wrote a credible commit message for that patch, but 
it looks like the text never got from my brain to the commit message.

The problem is that the number of reply bytes read is clamped to 
sizeof(propList), but the loop that processes the properties tries to 
examine all of them.  If the server sends 47,000 properties, we only 
read 3 but process all 47,000.

It now occurs to me that the __GLX_MAX_CONTEXT_PROPS define in 
glxproto.h is rubbish.  The server should send 4 properties: screen, 
fbconfig ID (or visual ID), share context ID, and render type.  Ugh.

I'll re-spin this patch with a better commit message, and I'll change

     int propList[__GLX_MAX_CONTEXT_PROPS * 2], *pProp, nPropListBytes;

to

     /* This GLX implementation knows about 5 different properties, so
      * allow the server to send us one of each.
      */
     int propList[5 * 2], *pProp, nPropListBytes;


More information about the mesa-dev mailing list