[Mesa-dev] [PATCH 2/3] mesa/main: avoid null access in format_array_table_init()
Juha-Pekka Heikkila
juhapekka.heikkila at gmail.com
Tue May 5 03:50:58 PDT 2015
If _mesa_hash_table_create failed we'd get null pointer. Report
error and go away.
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
---
src/mesa/main/formats.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c
index 8af44e9..f7c9402 100644
--- a/src/mesa/main/formats.c
+++ b/src/mesa/main/formats.c
@@ -397,6 +397,11 @@ format_array_format_table_init(void)
format_array_format_table = _mesa_hash_table_create(NULL, NULL,
array_formats_equal);
+ if (!format_array_format_table) {
+ _mesa_error_no_memory(__func__);
+ return;
+ }
+
for (f = 1; f < MESA_FORMAT_COUNT; ++f) {
info = _mesa_get_format_info(f);
if (!info->ArrayFormat)
@@ -432,6 +437,11 @@ _mesa_format_from_array_format(uint32_t array_format)
call_once(&format_array_format_table_exists, format_array_format_table_init);
+ if (!format_array_format_table) {
+ format_array_format_table_exists = ONCE_FLAG_INIT;
+ return MESA_FORMAT_NONE;
+ }
+
entry = _mesa_hash_table_search_pre_hashed(format_array_format_table,
array_format,
(void *)(intptr_t)array_format);
--
1.8.5.1
More information about the mesa-dev
mailing list