From d043ebc9410702efe52d9c285419159865de887c Mon Sep 17 00:00:00 2001 From: Mark Collins Date: Mon, 18 Mar 2024 10:56:30 +0000 Subject: [PATCH] fd/replay: Fix wrbuffer name extraction The offset for reading and length calculation logic was incorrect leading to the name string being entirely incorrect. Signed-off-by: Mark Collins Part-of: --- src/freedreno/decode/replay.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/freedreno/decode/replay.c b/src/freedreno/decode/replay.c index 56886ddff3b..9d80de05fac 100644 --- a/src/freedreno/decode/replay.c +++ b/src/freedreno/decode/replay.c @@ -1300,8 +1300,9 @@ override_cmdstream(struct device *dev, struct cmdstream *cs, uint64_t *p = (uint64_t *)ps.buf; wrbuf->iova = p[0]; wrbuf->size = p[1]; - wrbuf->name = calloc(1, p[2]); - memcpy(wrbuf->name, (char *)ps.buf + 3 * sizeof(uint64_t), p[2]); + int name_len = ps.sz - (2 * sizeof(uint64_t)); + wrbuf->name = calloc(sizeof(char), name_len); + memcpy(wrbuf->name, (char*)(p + 2), name_len); // includes null terminator break; } default: