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

Michel Dänzer daenzer at kemper.freedesktop.org
Mon Apr 28 03:43:19 UTC 2014


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

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>

---

 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 f573877..706af7f 100644
--- a/src/mesa/state_tracker/st_manager.c
+++ b/src/mesa/state_tracker/st_manager.c
@@ -183,8 +183,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