mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-08-31 17:55:23 +02:00
FromConfigString() indexed parts[0]/parts[1] from SplitString() with no check that at least 2 parts were produced - a malformed/truncated line in a hand-edited controls.ini (no '-') was an OOB vector access. Separately, DEVICE_ID_ANY (-1) didn't round-trip correctly: ToConfigString() formats it as e.g. "-1-5", but splitting that on '-' produces "", "1", "5" instead of "-1", "5" - deviceId decoded to 0 and keyCode to 1 instead of 5. Rather than special-casing the negative sign to make it round-trip, just reject DEVICE_ID_ANY mappings outright - it's not something we want to support, and the whole ANY concept is likely going away. Preserves the existing (tested) behavior of tolerating a MultiInputMapping string and parsing just its first mapping, via atoi()'s stop-at-first-non-digit behavior. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L4QAoxV2KY7ek4PcZw3WvY