Mesa (main): radeonsi: fix an out-of-bounds access in si_create_vertex_state

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Oct 13 04:16:43 UTC 2021


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

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Tue Oct 12 09:36:13 2021 -0400

radeonsi: fix an out-of-bounds access in si_create_vertex_state

Fixes: fb8f532ea1b - radeonsi: implement draw_vertex_state for lower display list overhead
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5484

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Reviewed-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13309>

---

 src/gallium/drivers/radeonsi/si_state.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index f77e7f48cfa..2bcd16f189c 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -5052,11 +5052,11 @@ si_create_vertex_state(struct pipe_screen *screen,
    /* Initialize the vertex element state in state->element.
     * Do it by creating a vertex element state object and copying it there.
     */
-   struct pipe_context ctx = {};
-   ctx.screen = screen;
-   struct si_vertex_elements *velems = si_create_vertex_elements(&ctx, num_elements, elements);
+   struct si_context ctx = {};
+   ctx.b.screen = screen;
+   struct si_vertex_elements *velems = si_create_vertex_elements(&ctx.b, num_elements, elements);
    state->velems = *velems;
-   si_delete_vertex_element(&ctx, velems);
+   si_delete_vertex_element(&ctx.b, velems);
 
    assert(!state->velems.instance_divisor_is_one);
    assert(!state->velems.instance_divisor_is_fetched);



More information about the mesa-commit mailing list