Mesa (master): i965: avoid segfault in intel_update_renderbuffers() if using DRI1

Brian Paul brianp at kemper.freedesktop.org
Tue Apr 28 16:01:33 UTC 2009


Module: Mesa
Branch: master
Commit: 43d9020ff1e975e7f4f9480d9ef24f0b9fb2141f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=43d9020ff1e975e7f4f9480d9ef24f0b9fb2141f

Author: Brian Paul <brianp at vmware.com>
Date:   Tue Apr 28 09:58:44 2009 -0600

i965: avoid segfault in intel_update_renderbuffers() if using DRI1

---

 src/mesa/drivers/dri/intel/intel_context.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c
index eb224a8..a6d8729 100644
--- a/src/mesa/drivers/dri/intel/intel_context.c
+++ b/src/mesa/drivers/dri/intel/intel_context.c
@@ -198,7 +198,7 @@ intel_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable)
    struct intel_renderbuffer *rb;
    struct intel_region *region, *depth_region;
    struct intel_context *intel = context->driverPrivate;
-   __DRIbuffer *buffers;
+   __DRIbuffer *buffers = NULL;
    __DRIscreen *screen;
    int i, count;
    unsigned int attachments[10];
@@ -210,7 +210,8 @@ intel_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable)
 
    screen = intel->intelScreen->driScrnPriv;
 
-   if ((screen->dri2.loader->base.version > 2)
+   if (screen->dri2.loader
+       && (screen->dri2.loader->base.version > 2)
        && (screen->dri2.loader->getBuffersWithFormat != NULL)) {
       struct intel_renderbuffer *depth_rb;
       struct intel_renderbuffer *stencil_rb;
@@ -248,7 +249,7 @@ intel_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable)
 						      attachments, i / 2,
 						      &count,
 						      drawable->loaderPrivate);
-   } else {
+   } else if (screen->dri2.loader) {
       i = 0;
       if (intel_fb->color_rb[0])
 	 attachments[i++] = __DRI_BUFFER_FRONT_LEFT;




More information about the mesa-commit mailing list