From: <sv...@op...> - 2024-04-21 21:47:49
|
Author: sagamusix Date: Sun Apr 21 21:20:25 2024 New Revision: 20645 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20645 Log: Merged revision(s) 20641 from trunk/OpenMPT: [Mod] MO3: Further reduce maximum allowed music data (not samples) size from 2GB to 512MB. ........ Modified: branches/OpenMPT-1.28/ (props changed) branches/OpenMPT-1.28/soundlib/Load_mo3.cpp Modified: branches/OpenMPT-1.28/soundlib/Load_mo3.cpp ============================================================================== --- branches/OpenMPT-1.28/soundlib/Load_mo3.cpp Sun Apr 21 21:20:10 2024 (r20644) +++ branches/OpenMPT-1.28/soundlib/Load_mo3.cpp Sun Apr 21 21:20:25 2024 (r20645) @@ -714,7 +714,9 @@ { return false; } - if(containerHeader.musicSize <= sizeof(MO3FileHeader) || containerHeader.musicSize >= uint32_max / 2u) + // Due to the LZ algorithm's unbounded back window, we could reach gigantic sizes with just a few dozen bytes. + // 512 MB of music data (not samples) is chosen as a safeguard that is probably (hopefully) *way* beyond anything a real-world module will ever reach. + if(containerHeader.musicSize <= sizeof(MO3FileHeader) || containerHeader.musicSize >= 0x2000'0000) { return false; } |