asahi,agx: Fix stack buffer overflow in agx_link_varyings_vs_fs

Discovered while running dEQP-EGL under address sanitizer.

Fixes: f3877f56ba ("asahi,agx: Rewrite varying linking")
Signed-off-by: Janne Grunau <j@jannau.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24635>
This commit is contained in:
Janne Grunau 2023-07-29 19:12:09 +02:00 committed by Marge Bot
parent eafd35e458
commit 3f8894b0f7

View file

@ -1489,8 +1489,8 @@ agx_link_varyings_vs_fs(struct agx_pool *pool, struct agx_varyings_vs *vs,
/* I don't understand why the data structures are repeated thrice */
for (unsigned i = 0; i < 3; ++i) {
memcpy(((uint8_t *)ptr.cpu) + (i * linkage_size),
((uint8_t *)tmp) + (i * linkage_size), linkage_size);
memcpy(((uint8_t *)ptr.cpu) + (i * linkage_size), (uint8_t *)tmp,
linkage_size);
}
return ptr.gpu;