diff options
| author | Filippos Karapetis | 2008-12-19 21:55:18 +0000 | 
|---|---|---|
| committer | Filippos Karapetis | 2008-12-19 21:55:18 +0000 | 
| commit | a6e4bd793f7b2d236b703d98614adf49e43cf6f9 (patch) | |
| tree | 4772abbeb7aa03059958b15296ba179258e6eaee | |
| parent | a4e08d94fce35313a1e71c0ab6d7a2687939aca2 (diff) | |
| download | scummvm-rg350-a6e4bd793f7b2d236b703d98614adf49e43cf6f9.tar.gz scummvm-rg350-a6e4bd793f7b2d236b703d98614adf49e43cf6f9.tar.bz2 scummvm-rg350-a6e4bd793f7b2d236b703d98614adf49e43cf6f9.zip | |
Hopefully fixed invalid buffer reads
svn-id: r35446
| -rw-r--r-- | graphics/smk_player.cpp | 6 | 
1 files changed, 3 insertions, 3 deletions
| diff --git a/graphics/smk_player.cpp b/graphics/smk_player.cpp index 983e001049..ea4fd45287 100644 --- a/graphics/smk_player.cpp +++ b/graphics/smk_player.cpp @@ -762,7 +762,7 @@ void SMKPlayer::queueCompressedBuffer(byte *buffer, uint32 bufferSize,  	int numBytes = 1 * (isStereo ? 2 : 1) * (is16Bits ? 2 : 1); -	byte *unpackedBuffer = new byte[unpackedSize + numBytes]; +	byte *unpackedBuffer = new byte[unpackedSize];  	byte *curPointer = unpackedBuffer;  	uint32 curPos = 0; @@ -783,7 +783,7 @@ void SMKPlayer::queueCompressedBuffer(byte *buffer, uint32 bufferSize,  	// The bases are the first samples, too -	for (int i = 0; i < (isStereo ? 2 : 1); i++, curPointer += (is16Bits ? 2 : 1)) { +	for (int i = 0; i < (isStereo ? 2 : 1); i++, curPointer += (is16Bits ? 2 : 1), curPos += (is16Bits ? 2 : 1)) {  		if (is16Bits)  			WRITE_BE_UINT16(curPointer, bases[i]);  		else @@ -822,7 +822,7 @@ void SMKPlayer::queueCompressedBuffer(byte *buffer, uint32 bufferSize,  	for (int k = 0; k < numBytes; k++)  		delete audioTrees[k]; -	_audioStream->queueBuffer(unpackedBuffer, unpackedSize + numBytes); +	_audioStream->queueBuffer(unpackedBuffer, unpackedSize);  	// unpackedBuffer will be deleted by AppendableAudioStream  } | 
