diff options
author | Jamie Madill <jmadill@chromium.org> | 2014-09-19 13:17:51 -0400 |
---|---|---|
committer | Jamie Madill <jmadill@chromium.org> | 2014-09-19 18:50:53 +0000 |
commit | ee009b8ee5f35dc6cca44a30d4d6c9c65cfdb0a7 (patch) | |
tree | 0ebeb9afb7ef8cab7effee83a553f615ba7a944e /tests | |
parent | 2f06dbfb3f4bd815a3fe5b52638b091c1e356a04 (diff) | |
download | angle-ee009b8ee5f35dc6cca44a30d4d6c9c65cfdb0a7.tar.gz |
Fix a NULL dereference on buffer initialization.
In some cases, where the user would create a buffer with NULL (empty)
data, we would attempt to dereference NULL when drawing with the
buffer as a vertex attribute.
BUG=angle:749
Change-Id: Ied5ecbab4608c85890cdf7cc32a8dae46989e33b
Reviewed-on: https://chromium-review.googlesource.com/219090
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/angle_tests/BufferDataTest.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/angle_tests/BufferDataTest.cpp b/tests/angle_tests/BufferDataTest.cpp index 41c00950..c566a85b 100644 --- a/tests/angle_tests/BufferDataTest.cpp +++ b/tests/angle_tests/BufferDataTest.cpp @@ -114,6 +114,19 @@ TEST_F(BufferDataTest, ZeroNonNULLData) delete [] zeroData; } +TEST_F(BufferDataTest, NULLResolvedData) +{ + glBindBuffer(GL_ARRAY_BUFFER, mBuffer); + glBufferData(GL_ARRAY_BUFFER, 128, NULL, GL_DYNAMIC_DRAW); + + glUseProgram(mProgram); + glVertexAttribPointer(mAttribLocation, 1, GL_FLOAT, GL_FALSE, 4, NULL); + glEnableVertexAttribArray(mAttribLocation); + glBindBuffer(GL_ARRAY_BUFFER, 0); + + drawQuad(mProgram, "position", 0.5f); +} + TEST_F(BufferDataTest, HugeSetDataShouldNotCrash) { glBindBuffer(GL_ARRAY_BUFFER, mBuffer); |