From: <sv...@op...> - 2024-06-02 14:48:24
|
Author: sagamusix Date: Sun Jun 2 16:48:17 2024 New Revision: 20905 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20905 Log: Merged revision(s) 20901-20904 from trunk/OpenMPT: [Fix] PSM: File header probing was stricter than actual file loader. ........ [Fix] DSm: Don't import as Amiga module, as this format can exceed the Amiga frequency range. ........ [Fix] Fuzzer: Don't return from the AFL loop if we weren't able to load a file. ........ [Fix] PSM: Header probing was still too strict. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/contrib/fuzzing/fuzz.cpp branches/OpenMPT-1.31/soundlib/Load_dsm.cpp branches/OpenMPT-1.31/soundlib/Load_psm.cpp Modified: branches/OpenMPT-1.31/contrib/fuzzing/fuzz.cpp ============================================================================== --- branches/OpenMPT-1.31/contrib/fuzzing/fuzz.cpp Sun Jun 2 16:47:37 2024 (r20904) +++ branches/OpenMPT-1.31/contrib/fuzzing/fuzz.cpp Sun Jun 2 16:48:17 2024 (r20905) @@ -60,7 +60,7 @@ OpenMPT::mpt::reinit_global_random(); openmpt_module * mod = openmpt_module_create_from_memory2( fileBuffer, fileSize, nullptr, nullptr, ErrFunc, nullptr, nullptr, nullptr, nullptr); if ( mod == NULL ) - return 1; + break; // verify API contract: If the file can be loaded, header probing must be successful too. if ( openmpt_probe_file_header( OPENMPT_PROBE_FILE_HEADER_FLAGS_DEFAULT, fileBuffer, fileSize, fileSize, nullptr, nullptr, ErrFunc, nullptr, nullptr, nullptr ) == OPENMPT_PROBE_FILE_HEADER_RESULT_FAILURE ) Modified: branches/OpenMPT-1.31/soundlib/Load_dsm.cpp ============================================================================== --- branches/OpenMPT-1.31/soundlib/Load_dsm.cpp Sun Jun 2 16:47:37 2024 (r20904) +++ branches/OpenMPT-1.31/soundlib/Load_dsm.cpp Sun Jun 2 16:48:17 2024 (r20905) @@ -401,7 +401,7 @@ return true; InitializeGlobals(MOD_TYPE_MOD); - m_SongFlags.set(SONG_IMPORTED); + m_SongFlags = SONG_IMPORTED; m_nChannels = fileHeader.numChannels; static_assert(MAX_BASECHANNELS >= 32 && MAX_SAMPLES > 255); m_nSamples = fileHeader.numSamples; Modified: branches/OpenMPT-1.31/soundlib/Load_psm.cpp ============================================================================== --- branches/OpenMPT-1.31/soundlib/Load_psm.cpp Sun Jun 2 16:47:37 2024 (r20904) +++ branches/OpenMPT-1.31/soundlib/Load_psm.cpp Sun Jun 2 16:48:17 2024 (r20905) @@ -263,19 +263,6 @@ { return ProbeFailure; } - PSMChunk chunkHeader; - if(!file.ReadStruct(chunkHeader)) - { - return ProbeWantMoreData; - } - if(chunkHeader.length == 0) - { - return ProbeFailure; - } - if((chunkHeader.id & 0x7F7F7F7Fu) != chunkHeader.id) // ASCII? - { - return ProbeFailure; - } MPT_UNREFERENCED_PARAMETER(pfilesize); return ProbeSuccess; } |