Mesa (master): zink: do not read outside of array

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Apr 22 17:58:55 UTC 2021


Module: Mesa
Branch: master
Commit: a6a198da2196743edda3f01054543909f5da4f8d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a6a198da2196743edda3f01054543909f5da4f8d

Author: Erik Faye-Lund <erik.faye-lund at collabora.com>
Date:   Wed Apr 21 10:14:13 2021 +0200

zink: do not read outside of array

We need to bounds-check *before* we index the array, otherwise we peek
beyond the end of it.

Caught by Valgrind.

Fixes: dd29a7e5b0e ("zink: move descriptor barrier handling to main update function")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10367>

---

 src/gallium/drivers/zink/zink_descriptors.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/zink/zink_descriptors.c b/src/gallium/drivers/zink/zink_descriptors.c
index 2ed08a765a8..758ff90e53f 100644
--- a/src/gallium/drivers/zink/zink_descriptors.c
+++ b/src/gallium/drivers/zink/zink_descriptors.c
@@ -1224,7 +1224,7 @@ zink_descriptors_update(struct zink_context *ctx, struct zink_screen *screen, bo
                                                is_compute, cache_hit[ZINK_DESCRIPTOR_TYPE_IMAGE],
                                                need_resource_refs[ZINK_DESCRIPTOR_TYPE_IMAGE]);
 
-   for (int h = 0; zds[h] && h < ZINK_DESCRIPTOR_TYPES; h++) {
+   for (int h = 0; h < ZINK_DESCRIPTOR_TYPES && zds[h]; h++) {
       /* skip null descriptor sets since they have no resources */
       if (!zds[h]->hash)
          continue;



More information about the mesa-commit mailing list