Validate glOrtho() and glFrustum() parameters.

Change-Id: Ib041b2c412ea9db7a951e4eea24b7f27d8621cd0
Reviewed-on: https://swiftshader-review.googlesource.com/3780
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
diff --git a/src/OpenGL/libGLES_CM/libGLES_CM.cpp b/src/OpenGL/libGLES_CM/libGLES_CM.cpp
index 0119030..bfde11c 100644
--- a/src/OpenGL/libGLES_CM/libGLES_CM.cpp
+++ b/src/OpenGL/libGLES_CM/libGLES_CM.cpp
@@ -1650,6 +1650,11 @@
 {

 	TRACE("(GLfloat left = %f, GLfloat right = %f, GLfloat bottom = %f, GLfloat top = %f, GLfloat zNear = %f, GLfloat zFar = %f)", left, right, bottom, top, zNear, zFar);

 

+	if(zNear <= 0.0f || zFar <= 0.0f || left == right || bottom == top || zNear == zFar)

+	{

+		return error(GL_INVALID_VALUE);

+	}

+

 	es1::Context *context = es1::getContext();

 

 	if(context)

@@ -2778,6 +2783,11 @@
 {

 	TRACE("(GLfloat left = %f, GLfloat right = %f, GLfloat bottom = %f, GLfloat top = %f, GLfloat zNear = %f, GLfloat zFar = %f)", left, right, bottom, top, zNear, zFar);

 

+	if(left == right || bottom == top || zNear == zFar)

+	{

+		return error(GL_INVALID_VALUE);

+	}

+

 	es1::Context *context = es1::getContext();

 

 	if(context)