[Mesa-dev] [PATCH] Avoid null pointer dereference when glXSwapBuffers is called with no bound context

Kenneth Graunke kenneth at whitecape.org
Sun Jan 15 13:25:35 PST 2012


On 01/11/2012 05:38 PM, Brian Paul wrote:
> On 01/11/2012 06:06 PM, Anuj Phogat wrote:
>> Calling glXSwapBuffers with no bound context causes segmentation fault in
>> function intelDRI2Flush. All the gl calls should be ignored after
>> setting the
>> current context to null. So the contents of framebuffer stay unchanged.
>> But the driver should not seg fault.
>>
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44614
>>
>> Reported-by: Yi Sun<yi.sun at intel.com>
>> Signed-off-by: Anuj Phogat<anuj.phogat at gmail.com>
>> ---
>> src/mesa/drivers/dri/intel/intel_screen.c | 12 +++++++-----
>> 1 files changed, 7 insertions(+), 5 deletions(-)
>>
>> diff --git a/src/mesa/drivers/dri/intel/intel_screen.c
>> b/src/mesa/drivers/dri/intel/intel_screen.c
>> index ce96ddd..03c2a1e 100644
>> --- a/src/mesa/drivers/dri/intel/intel_screen.c
>> +++ b/src/mesa/drivers/dri/intel/intel_screen.c
>> @@ -115,13 +115,15 @@ intelDRI2Flush(__DRIdrawable *drawable)
>> GET_CURRENT_CONTEXT(ctx);
>> struct intel_context *intel = intel_context(ctx);
>>
>> - if (intel->gen< 4)
>> - INTEL_FIREVERTICES(intel);
>> + if (intel != NULL) {
>> + if (intel->gen< 4)
>> + INTEL_FIREVERTICES(intel);
>>
>> - intel->need_throttle = true;
>> + intel->need_throttle = true;
>>
>> - if (intel->batch.used)
>> - intel_batchbuffer_flush(intel);
>> + if (intel->batch.used)
>> + intel_batchbuffer_flush(intel);
>> + }
>> }
>>
>> static const struct __DRI2flushExtensionRec intelFlushExtension = {
>
> Someone from Intel should probably review this, but in the future please
> prefix your commit message with the component being changed. And try to
> keep lines in your commit message under 76 characters:
>
> For example, something like:
>
> intel: fix glXSwapBuffers crash when there's no context"
>
> Thanks.
>
> -Brian

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

I'd echo Brian's comment as well.  When in doubt about a prefix, 'git 
log' on that file will show you what other people have used.


More information about the mesa-dev mailing list