supermodel: all 5 MOADs CLEAN (full coverage)

This commit is contained in:
russell@unturf.com 2026-03-31 19:25:03 -04:00
parent 0ba09a4f4c
commit 66f2e14770

View file

@ -0,0 +1,38 @@
# Supermodel — MOAD 0001-0005 CLEAN
Scanned: 2026-03-31
Source: https://github.com/trzy/Supermodel (depth=1)
## MOAD-0001 (CWE-407)
No meaningful linear scans in hot paths.
- GameLoader uses std::map/std::set with O(log N) or O(1) lookups for ROM file
identification by CRC32.
- Graphics (New3D, Legacy3D) uses unordered_map for texture and shader caching.
- CPU emulators (PPC, 68K, Z80) have no collection membership scans in per-cycle
paths.
- Input system CheckKeySources/CheckMouseSources/CheckJoySources use find() in
the ReadMapping configuration path only (not per-frame gameplay polling).
Sources and badSources vectors are bounded by pressed-key count (<10 in
practice), not a hot defect.
## MOAD-0002 (Intertangle)
No god-object or shared mutable global state coupling found. CModel3 owns all
hardware subsystems as members and passes references explicitly.
## MOAD-0003 (Leaked Context)
No thread_local or ThreadLocal usage. Supermodel is a C++ project with a
largely single-threaded emulation core. No request-scoped identity carriers found.
## MOAD-0004 (CWE-312)
No credential logging found. Network board (NetBoard.cpp) does not log session
tokens, authentication material, or ROM serial numbers verbatim.
## MOAD-0005 (Thundering Herd)
No cache get+null+put without synchronization. Supermodel's render state is
managed on a single thread. No concurrent shader or pipeline caches found.