VirtualBox

Ticket #7395 (closed defect: fixed)

Opened 4 years ago

Last modified 4 years ago

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

Reported by: kuroneko Owned by:
Priority: major 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

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

Change History

Changed 4 years ago by kuroneko

VM log

Changed 4 years ago by kuroneko

test app to trigger bug

comment:1 Changed 4 years ago by leonid

  • Summary changed from glGetVertexAttrib[if]v returns superfluous data -> memory corruption to glGetVertexAttrib[if]v returns superfluous data -> memory corruption -> Fixed in SVN

Thank you for report, fixed in the tree.

comment:2 Changed 4 years ago by sandervl73

  • Status changed from new to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use