[Scummvm-cvs-logs] SF.net SVN: scummvm: [27764] scummvm/trunk/sound/mods/protracker.cpp

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Thu Jun 28 22:15:11 CEST 2007


Revision: 27764
          http://scummvm.svn.sourceforge.net/scummvm/?rev=27764&view=rev
Author:   fingolfin
Date:     2007-06-28 13:15:10 -0700 (Thu, 28 Jun 2007)

Log Message:
-----------
Fix a bad, bad out-of-bounds write in the Protracker code

Modified Paths:
--------------
    scummvm/trunk/sound/mods/protracker.cpp

Modified: scummvm/trunk/sound/mods/protracker.cpp
===================================================================
--- scummvm/trunk/sound/mods/protracker.cpp	2007-06-28 20:09:58 UTC (rev 27763)
+++ scummvm/trunk/sound/mods/protracker.cpp	2007-06-28 20:15:10 UTC (rev 27764)
@@ -404,14 +404,15 @@
 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;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list