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); }