From: Eduardo Lima Mitev Date: Wed, 23 Nov 2016 13:44:05 +0000 (+0100) Subject: main/texobj: Check that texture id > 0 before looking it up in hash-table X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=89cbe0d21f8ed47f992b04b4a5595c4801d2b397;p=mesa.git main/texobj: Check that texture id > 0 before looking it up in hash-table _mesa_lookup_texture_err() is not currently checking that the texture-id can be zero, but _mesa_HashLookup() doesn't expect the key to be zero, and will fail an assertion. Considering that _mesa_lookup_texture_err() is called from _mesa_GetTextureImage and _mesa_GetTextureSubImage with user provided arguments, we must validate the texture-id before looking it up in the hash-table. Reviewed-by: Nicolai Hähnle --- diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c index fbd498dd935..e5b70701c44 100644 --- a/src/mesa/main/texobj.c +++ b/src/mesa/main/texobj.c @@ -116,9 +116,10 @@ _mesa_lookup_texture(struct gl_context *ctx, GLuint id) struct gl_texture_object * _mesa_lookup_texture_err(struct gl_context *ctx, GLuint id, const char* func) { - struct gl_texture_object *texObj; + struct gl_texture_object *texObj = NULL; - texObj = _mesa_lookup_texture(ctx, id); /* Returns NULL if not found. */ + if (id > 0) + texObj = _mesa_lookup_texture(ctx, id); /* Returns NULL if not found. */ if (!texObj) _mesa_error(ctx, GL_INVALID_OPERATION, "%s(texture)", func);