From 81ff42e126443f5d015de4c84102931c30509cc2 Mon Sep 17 00:00:00 2001 From: notaz Date: Sun, 27 Aug 2023 23:21:36 +0300 Subject: [PATCH] gpulib: don't corrupt memory on garbage commands --- plugins/gpulib/gpu.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/gpulib/gpu.c b/plugins/gpulib/gpu.c index 40a6bd85..d70e3663 100644 --- a/plugins/gpulib/gpu.c +++ b/plugins/gpulib/gpu.c @@ -690,6 +690,10 @@ long GPUdmaChain(uint32_t *rambase, uint32_t start_addr, uint32_t *progress_addr log_io(".chain %08lx #%d+%d\n", (long)(list - rambase) * 4, len, gpu.cmd_len); if (unlikely(gpu.cmd_len > 0)) { + if (gpu.cmd_len + len > ARRAY_SIZE(gpu.cmd_buffer)) { + log_anomaly("cmd_buffer overflow, likely garbage commands\n"); + gpu.cmd_len = 0; + } memcpy(gpu.cmd_buffer + gpu.cmd_len, list + 1, len * 4); gpu.cmd_len += len; flush_cmd_buffer(); -- 2.39.2