mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
Perform range checking on app supplied texture base level
It is possible for applications to specify any texture base level, including trivially invalid values (i.e., 47000000). When an app specifies an invalide base level, we should gracefully disable the texture instead of accessing memory outside the gl_texture_object. This fixes an occasional segfault in one of our conformance tests.
This commit is contained in:
parent
63cca2ba10
commit
1126aa86bf
1 changed files with 12 additions and 0 deletions
|
|
@ -383,6 +383,18 @@ _mesa_test_texobj_completeness( const GLcontext *ctx,
|
|||
|
||||
t->_Complete = GL_TRUE; /* be optimistic */
|
||||
|
||||
/* Detect cases where the application set the base level to an invalid
|
||||
* value.
|
||||
*/
|
||||
if ((baseLevel < 0) || (baseLevel > MAX_TEXTURE_LEVELS)) {
|
||||
char s[100];
|
||||
_mesa_sprintf(s, "obj %p (%d) base level = %d is invalid",
|
||||
(void *) t, t->Name, baseLevel);
|
||||
incomplete(t, s);
|
||||
t->_Complete = GL_FALSE;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Always need the base level image */
|
||||
if (!t->Image[0][baseLevel]) {
|
||||
char s[100];
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue