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>
(cherry picked from commit 3f8894b0f7)
This commit is contained in:
Janne Grunau 2023-07-29 19:12:09 +02:00 committed by Dylan Baker
parent 65d0399ccb
commit dbb887f013
2 changed files with 3 additions and 3 deletions

View file

@ -7774,7 +7774,7 @@
"description": "asahi,agx: Fix stack buffer overflow in agx_link_varyings_vs_fs",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "f3877f56ba7915ee6bc6866c0f4dc21881a3f5fb",
"notes": null

View file

@ -1383,8 +1383,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;