Mesa (master): mesa: Fix a crash in update_texture_state() for external texture type

Brian Paul brianp at kemper.freedesktop.org
Mon Oct 15 14:02:59 UTC 2012


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

Author: Abdiel Janulgue <abdiel.janulgue at linux.intel.com>
Date:   Fri Oct 12 11:51:03 2012 +0300

mesa: Fix a crash in update_texture_state() for external texture type

NOTE: This is a candidate for the stable branch.

Signed-off-by: Abdiel <abdiel.janulgue at intel.com>
Signed-off-by: Brian Paul <brianp at vmware.com>

---

 src/mesa/main/texobj.c   |    3 +++
 src/mesa/main/texstate.c |    7 +++++++
 2 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c
index 513f3bb..224d8a8 100644
--- a/src/mesa/main/texobj.c
+++ b/src/mesa/main/texobj.c
@@ -769,6 +769,9 @@ _mesa_get_fallback_texture(struct gl_context *ctx, gl_texture_index tex)
          target = GL_TEXTURE_BUFFER;
          break;
       case TEXTURE_EXTERNAL_INDEX:
+         dims = 2;
+         target = GL_TEXTURE_EXTERNAL_OES;
+         break;
       default:
          /* no-op */
          return NULL;
diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c
index 1fd09e9..0e5ba44 100644
--- a/src/mesa/main/texstate.c
+++ b/src/mesa/main/texstate.c
@@ -600,6 +600,13 @@ update_texture_state( struct gl_context *ctx )
 
             texTarget = (gl_texture_index) (ffs(enabledTargets) - 1);
             texObj = _mesa_get_fallback_texture(ctx, texTarget);
+            
+            assert(texObj);
+            if (!texObj) {
+               /* invalid fallback texture: don't enable the texture unit */
+               continue;
+            }
+
             _mesa_reference_texobj(&texUnit->_Current, texObj);
             texUnit->_ReallyEnabled = 1 << texTarget;
          }




More information about the mesa-commit mailing list