VirtualBox

Opened 14 years ago

Closed 14 years ago

#7395 closed defect (fixed)

glGetVertexAttrib[if]v returns superfluous data -> memory corruption -> Fixed in SVN

Reported by: kuroneko Owned by:
Component: 3D support Version: VirtualBox 3.2.8
Keywords: Cc:
Guest type: other Host type: other

Description

Host: Windows Vista, guest: Windows XP/SP3 with guest additions 3.2.8r64453

I'm aware that 3D support is experimental but so far I did't have any issues apart from the memory corruption caused by glGetVertexAttrib[if]v.

This function allows for 7 different name parameters:

GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING GL_VERTEX_ATTRIB_ARRAY_ENABLED GL_VERTEX_ATTRIB_ARRAY_SIZE GL_VERTEX_ATTRIB_ARRAY_STRIDE GL_VERTEX_ATTRIB_ARRAY_TYPE GL_VERTEX_ATTRIB_ARRAY_NORMALIZED GL_CURRENT_VERTEX_ATTRIB

The first 6 return a *single* GLint/GLfloat, the last one returns 4. What I experience is that the first 6 names return 4 parameters as well (the real one and garbage), therefore corrupting program variable/stack info which usually kills my program. This does not happen when running natively under Vista or XP.

As a side note, using GL_CURRENT_VERTEX_ATTRIB for index 0 should fail.

I'll attach a modified NeHe lesson (#6) which issues the relevant call (around line 200) and asserts when too much data is returned.

Attachments (2)

validation-2010-08-30-09-36-10.log (69.6 KB ) - added by kuroneko 14 years ago.
VM log
Lesson06.zip (224.9 KB ) - added by kuroneko 14 years ago.
test app to trigger bug

Download all attachments as: .zip

Change History (4)

by kuroneko, 14 years ago

VM log

by kuroneko, 14 years ago

Attachment: Lesson06.zip added

test app to trigger bug

comment:1 by Leonid Lobachev, 14 years ago

Summary: glGetVertexAttrib[if]v returns superfluous data -> memory corruptionglGetVertexAttrib[if]v returns superfluous data -> memory corruption -> Fixed in SVN

Thank you for report, fixed in the tree.

comment:2 by Sander van Leeuwen, 14 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.

© 2023 Oracle
ContactPrivacy policyTerms of Use