gpulib: fix out-of-bounds reads in do_cmd_buffer()
authorDaniel Silsby <dansilsby@gmail.com>
Sat, 9 Nov 2019 01:30:04 +0000 (20:30 -0500)
committerDaniel Silsby <dansilsby@gmail.com>
Sat, 9 Nov 2019 01:30:04 +0000 (20:30 -0500)
commit7194a46a0eb7583f7af0b5807e6ffde006733111
tree70dd67df94bcb59e76c5c54143c72e8e354d2d66
parent3c8913013a3bb1908186342759f881baa16602b9
gpulib: fix out-of-bounds reads in do_cmd_buffer()

When gpu.cmd_buffer[] is filling up, and the last 1 or 2 words
in it are the beginning of a new vram read/write cmd, do_cmd_buffer()
would access out-of-bounds, reading garbage pos/size data.

Fixes corrupted gfx in this PS1 .exe test utility:
https://github.com/PeterLemon/PSX/tree/master/CPUTest/CPU/LOADSTORE/LW
(This and all similar tests on Peter's site).
Note that gfx access in this utility is done entirely through cmds given
through GPUwriteData(), i.e. direct CPU->GP0 stores, not DMA.
plugins/gpulib/gpu.c