Houmgaor
34f0e89e7b
fix(savedata): guard against sub-minimum backup data in recovery
...
nullcomp's passthrough path returns non-cmp-header data as-is without
error, which is correct for old uncompressed saves. However, a corrupt
backup slot containing garbage shorter than the minimum save layout
(100 bytes) would pass Decompress() and then panic in
updateStructWithSaveData() with a slice-bounds error at the name field
read (offset 88–100).
Add a minSaveSize check after each backup decompresses; skip the slot
if the result is too small. Also document the campaign system and the
fix in CHANGELOG under Unreleased.
2026-03-20 11:46:01 +01:00
..
2026-03-17 19:03:43 +01:00
2026-03-17 19:21:55 +01:00
2026-03-19 10:57:09 +01:00
2026-03-05 18:00:30 +01:00
2026-03-05 18:00:30 +01:00
2026-03-20 11:22:25 +01:00
2026-03-19 10:57:09 +01:00
2026-03-19 10:57:09 +01:00
2026-03-19 19:28:30 +01:00
2026-03-20 11:46:01 +01:00
2026-03-19 10:57:09 +01:00
2026-03-17 19:21:55 +01:00
2026-03-19 10:57:09 +01:00
2026-03-05 18:00:30 +01:00
2026-03-18 12:09:44 +01:00
2026-03-18 12:09:44 +01:00
2026-03-19 10:57:09 +01:00
2026-03-18 23:19:25 +01:00
2026-03-10 11:28:11 +01:00
2026-03-10 11:19:22 +01:00
2026-03-05 16:39:15 +01:00
2026-03-02 19:43:11 +01:00
2026-03-02 19:43:11 +01:00
2026-03-05 18:00:30 +01:00
2026-03-06 00:15:53 +01:00
2026-03-05 18:00:30 +01:00
2026-03-03 18:04:33 +01:00
2026-03-19 10:57:09 +01:00
2026-03-19 10:57:09 +01:00
2026-03-19 14:35:38 +01:00
2026-03-20 11:22:25 +01:00
2026-03-05 18:00:30 +01:00
2026-03-05 16:39:15 +01:00
2026-03-19 14:35:38 +01:00
2026-03-19 10:57:09 +01:00
2026-03-19 10:57:09 +01:00
2026-03-19 10:57:09 +01:00
2026-03-17 19:03:43 +01:00
2026-03-20 11:22:25 +01:00
2026-03-19 10:57:09 +01:00
2026-03-02 20:12:39 +01:00
2026-03-02 20:12:39 +01:00
2026-03-19 10:57:09 +01:00
2026-03-19 10:57:09 +01:00
2026-03-19 14:35:38 +01:00
2026-03-19 10:57:09 +01:00
2026-03-17 19:11:59 +01:00
2026-03-19 14:35:38 +01:00
2026-03-19 10:57:09 +01:00
2026-03-05 16:39:15 +01:00
2026-03-19 10:57:09 +01:00
2026-03-19 10:57:09 +01:00
2026-03-17 19:03:43 +01:00
2026-03-19 18:20:00 +01:00
2026-03-19 18:20:00 +01:00
2026-03-19 18:20:00 +01:00
2026-03-19 23:59:34 +01:00
2026-03-19 23:59:34 +01:00
2026-03-20 00:07:34 +01:00
2026-03-20 00:07:34 +01:00
2026-03-05 23:05:55 +01:00
2026-03-18 12:14:31 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-18 10:48:52 +01:00
2026-03-19 19:28:30 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-18 12:09:44 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-16 00:07:46 +01:00
2026-03-10 11:28:11 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-02 19:43:11 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-19 19:28:30 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-19 19:28:30 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-05 23:05:55 +01:00
2026-03-18 11:35:31 +01:00
2026-03-18 11:35:31 +01:00
2026-03-10 11:28:11 +01:00
2026-03-10 11:28:11 +01:00
2026-03-19 23:59:34 +01:00
2026-03-20 00:07:34 +01:00
2026-03-06 00:15:53 +01:00
2026-03-05 23:05:55 +01:00