- Add warmboot_extractor (Sthetix-derived) for PKG1 extraction and sd save
- m_entry_fixMarikoWarmbootSleep: generate wb_xx.bin, INI warmboot= for
[CFW-EmuMMC] or section chooser; blank-line handling for Hekate parsing
- Menu: Mariko Sleep Fix under Bequemlichkeit; theme fix under MainAMS
- README: Funktionen + Danksagungen for warmboot/Fuse-Mismatch workaround
- Fix listdir memory corruption in Mac special-folder cleanup (apl.c)
Made-with: Cursor
The listdir function had three memory corruption bugs causing a
data abort (Err:19) on the Switch:
1. Heap buffer overflow: CpyStr("sd:/") allocated only 5 bytes but
listdir appends full subdirectory paths in-place via memcpy.
Fixed by using a 1024-byte stack buffer instead.
2. Use-after-free: _DeleteFileSimple(path) freed the shared traversal
buffer, but the loop continued using it. Fixed by inlining f_unlink
without freeing.
3. Recursive free + missing else: free(path) at the end of listdir
freed the buffer shared across all recursive frames, and a missing
else caused recursion into directories that were just deleted.
Removed the free and added an else guard.
Co-authored-by: Cursor <cursoragent@cursor.com>