getteximage: avoid to lookup textures with id 0
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 1 Mar 2017 21:54:09 +0000 (22:54 +0100)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 6 Mar 2017 17:01:38 +0000 (18:01 +0100)
This fixes the following assertion when the key is 0.

main/hash.c:181: _mesa_HashLookup_unlocked: Assertion `key' failed.

Fixes: 633c959fae ("getteximage: Return correct error value when texure object is not found")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/mesa/main/texgetimage.c

index c0c50b0518bf71544a43d2b51e77109627724964..37fda3dc9c43f70aa5cab3f9ca635a571c435b28 100644 (file)
@@ -1458,7 +1458,9 @@ _mesa_GetTextureSubImage(GLuint texture, GLint level,
 {
    GET_CURRENT_CONTEXT(ctx);
    static const char *caller = "glGetTextureSubImage";
-   struct gl_texture_object *texObj =
+   struct gl_texture_object *texObj = NULL;
+
+   if (texture > 0)
       _mesa_lookup_texture(ctx, texture);
 
    if (!texObj) {
@@ -1774,9 +1776,11 @@ _mesa_GetCompressedTextureSubImage(GLuint texture, GLint level,
 {
    GET_CURRENT_CONTEXT(ctx);
    static const char *caller = "glGetCompressedTextureImage";
-   struct gl_texture_object *texObj;
+   struct gl_texture_object *texObj = NULL;
+
+   if (texture > 0)
+      texObj = _mesa_lookup_texture(ctx, texture);
 
-   texObj = _mesa_lookup_texture(ctx, texture);
    if (!texObj) {
       _mesa_error(ctx, GL_INVALID_VALUE, "%s(texture)", caller);
       return;