[Scummvm-cvs-logs] SF.net SVN: scummvm:[45638] scummvm/trunk/sound
fingolfin at users.sourceforge.net
fingolfin at users.sourceforge.net
Tue Nov 3 21:49:54 CET 2009
Revision: 45638
http://scummvm.svn.sourceforge.net/scummvm/?rev=45638&view=rev
Author: fingolfin
Date: 2009-11-03 20:49:53 +0000 (Tue, 03 Nov 2009)
Log Message:
-----------
Fix for bug #2890038 (FT: Crashes when entering inventory)
Modified Paths:
--------------
scummvm/trunk/sound/audiostream.cpp
scummvm/trunk/sound/voc.cpp
Modified: scummvm/trunk/sound/audiostream.cpp
===================================================================
--- scummvm/trunk/sound/audiostream.cpp 2009-11-03 20:47:10 UTC (rev 45637)
+++ scummvm/trunk/sound/audiostream.cpp 2009-11-03 20:49:53 UTC (rev 45638)
@@ -220,6 +220,8 @@
: _rate(rate), _stream(stream), _beginLoop(beginLoop), _endLoop(endLoop), _disposeAfterUse(disposeStream),
_audioBlockCount(numBlocks), _loop(loop) {
+ assert(numBlocks > 0);
+
// Allocate streaming buffer
if (is16Bit) {
_buffer = (byte *)malloc(BUFFER_SIZE * sizeof(int16));
Modified: scummvm/trunk/sound/voc.cpp
===================================================================
--- scummvm/trunk/sound/voc.cpp 2009-11-03 20:47:10 UTC (rev 45637)
+++ scummvm/trunk/sound/voc.cpp 2009-11-03 20:49:53 UTC (rev 45638)
@@ -180,7 +180,6 @@
debug(2, "parseVOCFormat");
-
if (stream.read(&fileHeader, 8) != 8)
goto invalid;
@@ -301,8 +300,13 @@
int numBlocks = parseVOCFormat(stream, block, rate, loops, begin_loop, end_loop);
- AudioStream *audioStream = makeLinearDiskStream(&stream, block, numBlocks, rate, flags, takeOwnership, begin_loop, end_loop);
+ AudioStream *audioStream = 0;
+ // Create an audiostream from the data. Note the numBlocks may be 0,
+ // e.g. when invalid data is encountered. See bug #2890038.
+ if (numBlocks)
+ audioStream = makeLinearDiskStream(&stream, block, numBlocks, rate, flags, takeOwnership, begin_loop, end_loop);
+
delete[] block;
return audioStream;
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