SCI: Fix out-of-bounds error in MT-32 patch reading in GM mode.
svn-id: r47662
This commit is contained in:
parent
981252b1fe
commit
5ffba8631d
1 changed files with 9 additions and 4 deletions
|
@ -659,10 +659,15 @@ void MidiPlayer_Midi::mapMt32ToGm(byte *data, size_t size) {
|
||||||
debugCN(kDebugLevelSound, "%s -> ", Mt32PresetTimbreMaps[number].name);
|
debugCN(kDebugLevelSound, "%s -> ", Mt32PresetTimbreMaps[number].name);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
strncpy(name, (const char *)data + 0x1ec + number * 0xf6, 10);
|
if (number < memtimbres) {
|
||||||
name[10] = 0;
|
strncpy(name, (const char *)data + 0x1ec + number * 0xf6, 10);
|
||||||
_patchMap[i] = lookupGmInstrument(name);
|
name[10] = 0;
|
||||||
debugCN(kDebugLevelSound, "%s -> ", name);
|
_patchMap[i] = lookupGmInstrument(name);
|
||||||
|
debugCN(kDebugLevelSound, "%s -> ", name);
|
||||||
|
} else {
|
||||||
|
_patchMap[i] = 0xff;
|
||||||
|
debugCN(kDebugLevelSound, "[Invalid] -> ");
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
_patchMap[i] = getGmInstrument(Mt32RhythmTimbreMaps[number]);
|
_patchMap[i] = getGmInstrument(Mt32RhythmTimbreMaps[number]);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue