Fix returning EGL_BAD_ATTRIBUTE on unknown EGL config attributes.

Bug 23017372

Change-Id: Ie29ca3f67c79b0cb707dda216c256723d3721f28
Reviewed-on: https://swiftshader-review.googlesource.com/3861
Reviewed-by: Ping-Hao Wu <pinghao@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
diff --git a/src/OpenGL/libEGL/Config.cpp b/src/OpenGL/libEGL/Config.cpp
index acabdce..31e98ad 100644
--- a/src/OpenGL/libEGL/Config.cpp
+++ b/src/OpenGL/libEGL/Config.cpp
@@ -355,8 +355,8 @@
 				case EGL_RECORDABLE_ANDROID:         match = true; /* UNIMPLEMENTED(); EGL_ANDROID_recordable */       break;
 				case EGL_FRAMEBUFFER_TARGET_ANDROID: match = true; /* UNIMPLEMENTED(); EGL_ANDROID_framebuffer_target */ break;
 				default:
-					UNIMPLEMENTED();
-					match = false;
+					*numConfig = 0;
+					return false;
 				}
 
 				if(!match)
diff --git a/src/OpenGL/libEGL/libEGL.cpp b/src/OpenGL/libEGL/libEGL.cpp
index 2953d25..6363738 100644
--- a/src/OpenGL/libEGL/libEGL.cpp
+++ b/src/OpenGL/libEGL/libEGL.cpp
@@ -240,7 +240,10 @@
 		attrib_list = attribList;

 	}

 

-	display->getConfigs(configs, attrib_list, config_size, num_config);

+	if(!display->getConfigs(configs, attrib_list, config_size, num_config))

+	{

+		return error(EGL_BAD_ATTRIBUTE, EGL_FALSE);

+	}

 

 	return success(EGL_TRUE);

 }