Mesa (10.1): st/mesa: Fix NULL pointer dereference for incomplete framebuffers

Carl Worth cworth at kemper.freedesktop.org
Thu May 1 14:31:39 UTC 2014


Module: Mesa
Branch: 10.1
Commit: 0f90c69a5ce857ec3cbe27c8b5acc3f087204e80
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0f90c69a5ce857ec3cbe27c8b5acc3f087204e80

Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Fri Apr 25 11:40:39 2014 +0900

st/mesa: Fix NULL pointer dereference for incomplete framebuffers

This can happen with glamor, which uses EGL_KHR_surfaceless_context and
only explicitly binds GL_READ_FRAMEBUFFER for glReadPixels.

Cc: mesa-stable at lists.freedesktop.org
Reviewed-by: Brian Paul <brianp at vmware.com>
(cherry picked from commit 136c437cea3ebc9541735bb40951128e1210f06b)

---

 src/mesa/state_tracker/st_manager.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c
index 215b276..f501294 100644
--- a/src/mesa/state_tracker/st_manager.c
+++ b/src/mesa/state_tracker/st_manager.c
@@ -182,8 +182,13 @@ st_framebuffer_validate(struct st_framebuffer *stfb,
    uint width, height;
    unsigned i;
    boolean changed = FALSE;
-   int32_t new_stamp = p_atomic_read(&stfb->iface->stamp);
+   int32_t new_stamp;
 
+   /* Check for incomplete framebuffers (e.g. EGL_KHR_surfaceless_context) */
+   if (!stfb->iface)
+      return;
+
+   new_stamp = p_atomic_read(&stfb->iface->stamp);
    if (stfb->iface_stamp == new_stamp)
       return;
 




More information about the mesa-commit mailing list