From bd8b50979e7258d2a2314bbd84f1f66863cf6b6c Mon Sep 17 00:00:00 2001 From: dmaleev Date: Fri, 17 Jan 2025 16:24:55 +0300 Subject: [PATCH] Fix buffer overflow in engine_status_dump() function --- XDMA/linux-kernel/xdma/libxdma.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/XDMA/linux-kernel/xdma/libxdma.c b/XDMA/linux-kernel/xdma/libxdma.c index 3d9c86524..89ed04296 100644 --- a/XDMA/linux-kernel/xdma/libxdma.c +++ b/XDMA/linux-kernel/xdma/libxdma.c @@ -413,11 +413,11 @@ static int engine_reg_dump(struct xdma_engine *engine) static void engine_status_dump(struct xdma_engine *engine) { u32 v = engine->status; - char buffer[256]; + char buffer[400]; char *buf = buffer; int len = 0; - len = sprintf(buf, "SG engine %s status: 0x%08x: ", engine->name, v); + len = sprintf(buf, "SG engine %.16s status: 0x%08x: ", engine->name, v); if ((v & XDMA_STAT_BUSY)) len += sprintf(buf + len, "BUSY,"); @@ -433,7 +433,7 @@ static void engine_status_dump(struct xdma_engine *engine) if ((v & XDMA_STAT_MAGIC_STOPPED)) len += sprintf(buf + len, "MAGIC_STOPPED "); if ((v & XDMA_STAT_INVALID_LEN)) - len += sprintf(buf + len, "INVLIAD_LEN "); + len += sprintf(buf + len, "INVALID_LEN "); if ((v & XDMA_STAT_IDLE_STOPPED)) len += sprintf(buf + len, "IDLE_STOPPED "); buf[len - 1] = ',';