Fix out-of-bounds stack read
authorAri Suonpaa <ari.suonpaa@siru.fi>
Fri, 12 Nov 2021 05:08:39 +0000 (07:08 +0200)
committerMatthew Netsch <quic_mnetsch@quicinc.com>
Thu, 18 Nov 2021 21:53:26 +0000 (21:53 +0000)
glBufferData was given a pointer to a C struct, but
a wrong struct type was used for sizeof.

VK-GL-CTS Issue: 3294

Affects:

KHR-GLES31.core.draw_indirect.negative-noV*arrays

Components: OpenGL
Change-Id: If02916683e0fee46b05dd4774b56f7fe335cc80f

external/openglcts/modules/gles31/es31cDrawIndirectTests.cpp

index 7adc4f7..e093aed 100644 (file)
@@ -6211,7 +6211,7 @@ struct CNegativeNoVAOArrays : public DrawIndirectBase
 
                glGenBuffers(1, &_bufferIndirect);
                glBindBuffer(GL_DRAW_INDIRECT_BUFFER, _bufferIndirect);
-               glBufferData(GL_DRAW_INDIRECT_BUFFER, sizeof(DrawElementsIndirectCommand), &indirectArrays, GL_STATIC_DRAW);
+               glBufferData(GL_DRAW_INDIRECT_BUFFER, sizeof(DrawArraysIndirectCommand), &indirectArrays, GL_STATIC_DRAW);
 
                DIResult result;
                glDrawArraysIndirect(GL_TRIANGLES, 0);
@@ -6404,7 +6404,7 @@ struct CNegativeNoVBOArrays : public DrawIndirectBase
 
                glGenBuffers(1, &_bufferIndirect);
                glBindBuffer(GL_DRAW_INDIRECT_BUFFER, _bufferIndirect);
-               glBufferData(GL_DRAW_INDIRECT_BUFFER, sizeof(DrawElementsIndirectCommand), &indirectArrays, GL_STATIC_DRAW);
+               glBufferData(GL_DRAW_INDIRECT_BUFFER, sizeof(DrawArraysIndirectCommand), &indirectArrays, GL_STATIC_DRAW);
 
                DIResult result;
                glDrawArraysIndirect(GL_TRIANGLES, 0);