diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c index 2f2c7dc45a9..55f2fe9bf42 100644 --- a/src/mesa/main/fbobject.c +++ b/src/mesa/main/fbobject.c @@ -4814,7 +4814,11 @@ _mesa_GetFramebufferParameterivEXT(GLuint framebuffer, GLenum pname, *param = fb->ColorReadBuffer; } else if (GL_DRAW_BUFFER0 <= pname && pname <= GL_DRAW_BUFFER15) { - *param = fb->ColorDrawBuffer[pname - GL_DRAW_BUFFER0]; + unsigned buffer = pname - GL_DRAW_BUFFER0; + if (buffer < ARRAY_SIZE(fb->ColorDrawBuffer)) + *param = fb->ColorDrawBuffer[buffer]; + else + _mesa_error(ctx, GL_INVALID_ENUM, "glGetFramebufferParameterivEXT(pname)"); } else { _mesa_error(ctx, GL_INVALID_ENUM, "glGetFramebufferParameterivEXT(pname)");