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@lists.freedesktop.org
Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 136c437cea)
This commit is contained in:
Michel Dänzer 2014-04-25 11:40:39 +09:00 committed by Carl Worth
parent 5d680bc082
commit e19c702eac

View file

@ -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;