Validate target parameter in CopyTexImage calls before using to check mip level

Would cause UNREACHABLE to be triggered if target was invalid, and INVALID_VALUE to
be returned instead of INVALID_ENUM if it were the only erroneous argument.

Change-Id: I2606e77379fa2832a50b3a299e6474a4b2f68afa
Reviewed-on: https://chromium-review.googlesource.com/189701
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Shannon Woods <shannonwoods@chromium.org>
diff --git a/src/libGLESv2/validationES3.cpp b/src/libGLESv2/validationES3.cpp
index 4b2bd45..326e5aa 100644
--- a/src/libGLESv2/validationES3.cpp
+++ b/src/libGLESv2/validationES3.cpp
@@ -286,6 +286,11 @@
                                        bool isSubImage, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y,
                                        GLsizei width, GLsizei height, GLint border)
 {
+    if (!ValidTexture2DDestinationTarget(context, target))
+    {
+        return gl::error(GL_INVALID_ENUM, false);
+    }
+
     if (level < 0 || xoffset < 0 || yoffset < 0 || zoffset < 0 || width < 0 || height < 0)
     {
         return gl::error(GL_INVALID_VALUE, false);
@@ -451,6 +456,7 @@
     }
 
 
+
     // If width or height is zero, it is a no-op.  Return false without setting an error.
     return (width > 0 && height > 0);
 }