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

Brian Paul brianp at vmware.com
Wed Jan 11 17:38:19 PST 2012


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



More information about the mesa-dev mailing list