Don't crash when using a buffer with no data.

It's undefined behavior when an application attempts to use a buffer
for which no data has been allocated yet, but this is trivial for us to
check for and produce a non-fatal error.

Bug chromium:736639

Change-Id: I795c22363ada1b5e325d1fb5061a9e7673609879
Reviewed-on: https://swiftshader-review.googlesource.com/10309
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/OpenGL/libGLESv2/VertexDataManager.cpp b/src/OpenGL/libGLESv2/VertexDataManager.cpp
index 7b5cc6f..2fff628 100644
--- a/src/OpenGL/libGLESv2/VertexDataManager.cpp
+++ b/src/OpenGL/libGLESv2/VertexDataManager.cpp
@@ -153,7 +153,7 @@
 
 				Buffer *buffer = attrib.mBoundBuffer;
 
-				if(!buffer && attrib.mPointer == nullptr)
+				if((!buffer && attrib.mPointer == nullptr) || (buffer && !buffer->data()))
 				{
 					// This is an application error that would normally result in a crash, but we catch it and return an error
 					ERR("An enabled vertex array has no buffer and no pointer.");