Mesa (master): mesa/main: Prevent sefgault on glGetIntegerv( GL_ATOMIC_COUNTER_BUFFER_BINDING).

Jose Fonseca jrfonseca at kemper.freedesktop.org
Sun Jun 8 08:43:26 UTC 2014


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

Author: José Fonseca <jfonseca at vmware.com>
Date:   Fri Jun  6 23:59:18 2014 +0100

mesa/main: Prevent sefgault on glGetIntegerv(GL_ATOMIC_COUNTER_BUFFER_BINDING).

A recent ApiTrace change, that tries to dump more buffer state
causes Mesa from my distro (10.1.4) to segfaults here.

I haven't actually confirm this fixes it (I can't repro on master),
but it seems a good idea to be defensive here anyway.

Cc: "10.1 10.2" <mesa-stable at lists.freedesktop.org>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/mesa/main/get.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index 267b5f2..9b56edb 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -1005,7 +1005,11 @@ find_custom_value(struct gl_context *ctx, const struct value_desc *d, union valu
       break;
    /* GL_ARB_shader_atomic_counters */
    case GL_ATOMIC_COUNTER_BUFFER_BINDING:
-      v->value_int = ctx->AtomicBuffer->Name;
+      if (ctx->AtomicBuffer) {
+         v->value_int = ctx->AtomicBuffer->Name;
+      } else {
+         v->value_int = 0;
+      }
       break;
    /* GL_ARB_draw_indirect */
    case GL_DRAW_INDIRECT_BUFFER_BINDING:




More information about the mesa-commit mailing list