egl_dri2: Fix segmentation fault
authorPaulo Alcantara <pcacjr@profusion.mobi>
Fri, 17 Aug 2012 17:08:10 +0000 (14:08 -0300)
committerBrian Paul <brianp@vmware.com>
Thu, 23 Aug 2012 15:17:23 +0000 (09:17 -0600)
The segmentation fault occurs when DRI2 is not loaded up and
dri2_setup_screen() function deferences dri2_dpy->dri2 (since it's NULL
at this point).

This patch fixes the segmentation fault by checking if dri2 pointer is
not NULL before deferencing it.

Signed-off-by: Paulo Alcantara <pcacjr@profusion.mobi>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
src/egl/drivers/dri2/egl_dri2.c

index 423d18d..7326b85 100644 (file)
@@ -481,7 +481,7 @@ dri2_setup_screen(_EGLDisplay *disp)
    assert(dri2_dpy->dri2 || dri2_dpy->swrast);
    disp->Extensions.KHR_surfaceless_context = EGL_TRUE;
 
-   if (dri2_dpy->dri2->base.version >= 3) {
+   if (dri2_dpy->dri2 && dri2_dpy->dri2->base.version >= 3) {
       disp->Extensions.KHR_create_context = EGL_TRUE;
 
       if (dri2_dpy->robustness)