translate: assert that nr_elements is in range
authorErik Faye-Lund <erik.faye-lund@collabora.com>
Mon, 10 May 2021 15:47:47 +0000 (17:47 +0200)
committerErik Faye-Lund <erik.faye-lund@collabora.com>
Wed, 12 May 2021 09:26:54 +0000 (11:26 +0200)
This just ensures that we don't end up reading/writing outside of the
space reserved in the key. This would have made it easier to to track
down the issue in the previous commit faster.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10730>

src/gallium/auxiliary/translate/translate.h

index 0b50020..b70d90b 100644 (file)
@@ -139,6 +139,7 @@ boolean translate_is_output_format_supported(enum pipe_format format);
 
 static inline int translate_keysize( const struct translate_key *key )
 {
+   assert(key->nr_elements <= TRANSLATE_MAX_ATTRIBS);
    return 2 * sizeof(int) + key->nr_elements * sizeof(struct translate_element);
 }