From cade10be22ec3410eb5676dfe7f4aa09d79e6f15 Mon Sep 17 00:00:00 2001 From: Christopher Snowhill Date: Wed, 27 Dec 2017 15:16:27 -0800 Subject: [PATCH] Fix BASSMODS IT input, and add MO3 signature check. --- Plugins/BASSMODS/BASSMODS/BASSDecoder.mm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Plugins/BASSMODS/BASSMODS/BASSDecoder.mm b/Plugins/BASSMODS/BASSMODS/BASSDecoder.mm index 3398a249d..dd765ccfc 100755 --- a/Plugins/BASSMODS/BASSMODS/BASSDecoder.mm +++ b/Plugins/BASSMODS/BASSMODS/BASSDecoder.mm @@ -76,6 +76,8 @@ static void SyncProc( HSYNC handle, DWORD channel, DWORD data, void *user ) - (BOOL)open:(id)s { + [self setSource:s]; + [source seek:0 whence:SEEK_END]; long size = [source tell]; [source seek:0 whence:SEEK_SET]; @@ -89,14 +91,12 @@ static void SyncProc( HSYNC handle, DWORD channel, DWORD data, void *user ) data = try_data; } - if (memcmp(data, "IMPM", 4) != 0) { + if (size < 4 || (memcmp(data, "mo3", 3) != 0 && memcmp(data, "IMPM", 4) != 0)) { ALog(@"BASS was passed a non-IT module"); free(data); return NO; } - [self setSource:s]; - NSURL * url = [s url]; int track_num; if ([[url fragment] length] == 0)