Files
ppsspp/Core/HW
Henrik Rydgård bfbe44ad1c SimpleAudioDec: fix unsigned underflow and unvalidated stream-data size
FindNextMp3Sync() computed `sourcebuff.size() - 2` as the loop bound;
when size() is 0 or 1 this underflows to a huge size_t, turning the
scan into an out-of-bounds read. Reachable via sceMp3NotifyAddStreamData
followed by sceMp3Decode with as little as 1 pending byte.

AuNotifyAddStreamData() trusted the game-supplied `size` outright: a
negative value would make sourcebuff.resize() attempt a huge
allocation (via size_t underflow), an unbounded positive value grows
sourcebuff without limit, and the validated range didn't match the
actual read range (checked [AuBuf, AuBuf+size) while reading from
[AuBuf+offset, AuBuf+offset+size)). Validate size is positive and
capped to the buffer's declared capacity, and validate the range
actually read.
2026-08-12 09:43:23 +02:00
..
2026-06-08 23:04:29 +08:00
2026-06-08 23:04:29 +08:00
2026-07-16 20:49:52 +08:00
2026-06-08 23:04:29 +08:00
2026-08-11 10:28:36 +02:00
2025-12-30 20:31:06 +01:00