Mesa (master): i965/gen6: Fix near-NULL deref in setting up GS binding table for non-XFB.

Eric Anholt anholt at kemper.freedesktop.org
Tue Feb 21 21:31:18 UTC 2012


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

Author: Eric Anholt <eric at anholt.net>
Date:   Tue Feb 21 13:17:40 2012 -0800

i965/gen6: Fix near-NULL deref in setting up GS binding table for non-XFB.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Tested-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/mesa/drivers/dri/i965/gen6_sol.c |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/gen6_sol.c b/src/mesa/drivers/dri/i965/gen6_sol.c
index 191ed5b..07316c8 100644
--- a/src/mesa/drivers/dri/i965/gen6_sol.c
+++ b/src/mesa/drivers/dri/i965/gen6_sol.c
@@ -87,13 +87,16 @@ brw_gs_upload_binding_table(struct brw_context *brw)
    /* BRW_NEW_VERTEX_PROGRAM */
    const struct gl_shader_program *shaderprog =
       ctx->Shader.CurrentVertexProgram;
-   const struct gl_transform_feedback_info *linked_xfb_info =
-      &shaderprog->LinkedTransformFeedback;
-   /* Currently we only ever upload surfaces for SOL. */
-   bool has_surfaces = linked_xfb_info->NumOutputs != 0;
-
+   bool has_surfaces = false;
    uint32_t *bind;
 
+   if (shaderprog) {
+      const struct gl_transform_feedback_info *linked_xfb_info =
+	 &shaderprog->LinkedTransformFeedback;
+      /* Currently we only ever upload surfaces for SOL. */
+      has_surfaces = linked_xfb_info->NumOutputs != 0;
+   }
+
    /* Skip making a binding table if we don't have anything to put in it. */
    if (!has_surfaces) {
       if (brw->gs.bind_bo_offset != 0) {




More information about the mesa-commit mailing list