From 24aa81e085493b7adf99d19dc702e4182087386a Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Fri, 15 Dec 2023 23:52:34 +0900 Subject: [PATCH] [vulkan] Fix some out-by-one errors I don't know why I thought <= was useful in those loops. Fixes some segfaults for incorrect references. --- libs/video/renderer/vulkan/render_load.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/video/renderer/vulkan/render_load.c b/libs/video/renderer/vulkan/render_load.c index e70cafd31..a32e54bcd 100644 --- a/libs/video/renderer/vulkan/render_load.c +++ b/libs/video/renderer/vulkan/render_load.c @@ -230,7 +230,7 @@ find_imageinfo (qfv_jobinfo_t *jobinfo, const qfv_reference_t *ref) //job->image_views[i].image_view.external_image = image; //job->image_views[i].image_view.image = -1; } else { - for (uint32_t i = 0; i <= jobinfo->num_images; i++) { + for (uint32_t i = 0; i < jobinfo->num_images; i++) { auto img = &jobinfo->images[i]; if (strcmp (ref->name, img->name) == 0) { return img; @@ -244,7 +244,7 @@ find_imageinfo (qfv_jobinfo_t *jobinfo, const qfv_reference_t *ref) static qfv_imageviewinfo_t * __attribute__((pure)) find_imageviewinfo (qfv_jobinfo_t *jobinfo, const qfv_reference_t *ref) { - for (uint32_t i = 0; i <= jobinfo->num_imageviews; i++) { + for (uint32_t i = 0; i < jobinfo->num_imageviews; i++) { auto imgview = &jobinfo->imageviews[i]; if (strcmp (ref->name, imgview->name) == 0) { return imgview; @@ -388,7 +388,7 @@ find_subpass (qfv_dependencyinfo_t *d, uint32_t spind, if (strcmp (d->name, "$external") == 0) { return VK_SUBPASS_EXTERNAL; } - for (uint32_t i = 0; i <= spind; i++) { + for (uint32_t i = 0; i < spind; i++) { __auto_type s = &subpasses[i]; if (strcmp (d->name, s->name) == 0) { return i;