mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-11-01 20:18:15 +01:00
- sceHeapDeleteHeap never freed the heap's memory. Allocation failure returned -1 rather than a null pointer, and a near-4GB size wrapped. - The USB wait timeout resumed threads that were no longer waiting on USB, and UsbUpdateState resumed them too, and never rescheduled. - The Mersenne Twister drew from mt_[index_] with the index taken from guest memory. It's now taken modulo the state size. sceSfmt19937 checks its index, and that fill arrays are at least a state long, which the library writes regardless of the length it's given. - sceCccEncodeUTF16's surrogate test also caught U+F800 - U+FFFF, which includes the fullwidth forms. - sceAudioRoutingSetVolumeMode stored the routing mode. - A sample rate of 0 to sceAudioInput or the camera mic divided by zero, and a huge sample count sized a host buffer. sceP3daBridgeCore's sizes could wrap. sceRtc's tz offset could overflow tm_min. - Camera shutdown freed the frame buffer and config without the lock the capture thread uses. GPS data is set from the platform's location thread, so it's now locked too, and the satellite index is bounded. - A loop in the sys event handler list hung the unregister. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>