X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=plugins%2Fgpulib%2Fgpu.c;fp=plugins%2Fgpulib%2Fgpu.c;h=9cf5841d9b09bf6782846f9916baf21720f8fb11;hp=b23f8a88f6decfa2e63e7c11f3ee9bc1bd3dad25;hb=23948df34dc798cf21b40bf15d76a8035c6e01f0;hpb=fed9fd6f2cba07f2db3715d7f35f911a7b582517 diff --git a/plugins/gpulib/gpu.c b/plugins/gpulib/gpu.c index b23f8a88..9cf5841d 100644 --- a/plugins/gpulib/gpu.c +++ b/plugins/gpulib/gpu.c @@ -614,6 +614,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();