diff options
author | Max Horn | 2007-06-28 20:15:10 +0000 |
---|---|---|
committer | Max Horn | 2007-06-28 20:15:10 +0000 |
commit | 5b75e49182fd66306ff00c37114dc22d9d9d4309 (patch) | |
tree | 18cada07c7300ae4d7ef54acc4d016c9e2e2f60b | |
parent | d35861fc4ae5f23126dd7b1a0e512f79b64ff481 (diff) | |
download | scummvm-rg350-5b75e49182fd66306ff00c37114dc22d9d9d4309.tar.gz scummvm-rg350-5b75e49182fd66306ff00c37114dc22d9d9d4309.tar.bz2 scummvm-rg350-5b75e49182fd66306ff00c37114dc22d9d9d4309.zip |
Fix a bad, bad out-of-bounds write in the Protracker code
svn-id: r27764
-rw-r--r-- | sound/mods/protracker.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sound/mods/protracker.cpp b/sound/mods/protracker.cpp index 93e252a0f6..bd1e48ead7 100644 --- a/sound/mods/protracker.cpp +++ b/sound/mods/protracker.cpp @@ -404,14 +404,15 @@ void ProtrackerStream::updateEffects() { void ProtrackerStream::interrupt(void) { int track; - for (track = 0; track < 4; track++) + for (track = 0; track < 4; track++) { _track[track].offset = getChannelOffset(track); - - if (_tick == 0) { - if (_track[track].arpeggio) { + if (_tick == 0 && _track[track].arpeggio) { _track[track].period = _module.noteToPeriod(_track[track].arpeggioNotes[0], _track[track].finetune); } + } + + if (_tick == 0) { if (_hasJumpToPattern) { _hasJumpToPattern = false; _pos = _jumpToPattern; |