From: <sv...@op...> - 2024-11-18 18:47:18
|
Author: sagamusix Date: Mon Nov 18 19:47:12 2024 New Revision: 22222 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22222 Log: [Fix] FC: Fix crash when trying to load more than 255 instruments (found with afl++ + ubsan). Modified: trunk/OpenMPT/soundlib/Load_fc.cpp Modified: trunk/OpenMPT/soundlib/Load_fc.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_fc.cpp Mon Nov 18 19:44:10 2024 (r22221) +++ trunk/OpenMPT/soundlib/Load_fc.cpp Mon Nov 18 19:47:12 2024 (r22222) @@ -311,7 +311,7 @@ SetupMODPanning(true); m_SongFlags.set(SONG_IMPORTED | SONG_ISAMIGA); m_nSamples = isFC14 ? 90 : 57; - m_nInstruments = static_cast<INSTRUMENTINDEX>(fileHeader.volSequenceSize / 64u + 1); + m_nInstruments = std::min(static_cast<INSTRUMENTINDEX>(fileHeader.volSequenceSize / 64u + 1), static_cast<SAMPLEINDEX>(MAX_INSTRUMENTS - 1)); m_playBehaviour.set(kMODSampleSwap); m_playBehaviour.set(kApplyUpperPeriodLimit); m_nMinPeriod = 113 * 4; |