mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-21 19:51:49 +00:00
Check for negative sound offset.
svn-id: r16602
This commit is contained in:
parent
ca58bfed3b
commit
b9356bbe14
@ -215,7 +215,7 @@ void Sound::playSound(int soundID, int heOffset, int heChannel, int heFlags) {
|
||||
size = musicFile.readUint32LE();
|
||||
|
||||
if (music_offs > total_size || (size + music_offs > total_size) || size < 0) {
|
||||
warning("playSound: Bad music offsets");
|
||||
warning("playSound: Invalid music offset (%d) in music %d", soundID);
|
||||
musicFile.close();
|
||||
return;
|
||||
}
|
||||
@ -282,8 +282,8 @@ void Sound::playSound(int soundID, int heOffset, int heChannel, int heFlags) {
|
||||
}
|
||||
|
||||
size = READ_BE_UINT32(ptr+4) - 8;
|
||||
if (heOffset > size) {
|
||||
warning("playSound: Bad sound offset");
|
||||
if (heOffset < 0 || heOffset > size) {
|
||||
warning("playSound: Invalid sound offset (%d) in sound %d", heOffset, soundID);
|
||||
heOffset = 0;
|
||||
}
|
||||
size -= heOffset;
|
||||
|
@ -93,11 +93,11 @@ public:
|
||||
public:
|
||||
Sound(ScummEngine *parent);
|
||||
~Sound();
|
||||
void addSoundToQueue(int sound, int offset = 0, int channel = 0, int heFlags = 0);
|
||||
void addSoundToQueue2(int sound, int offset = 0, int channel = 0, int heFlags = 0);
|
||||
void addSoundToQueue(int sound, int heOffset = 0, int heChannel = 0, int heFlags = 0);
|
||||
void addSoundToQueue2(int sound, int heOffset = 0, int heChannel = 0, int heFlags = 0);
|
||||
void processSoundQues();
|
||||
void setOverrideFreq(int freq);
|
||||
void playSound(int sound, int offset = 0, int channel = 0, int heFlags = 0);
|
||||
void playSound(int soundID, int heOffset, int heChannel, int heFlags);
|
||||
void startTalkSound(uint32 offset, uint32 b, int mode, PlayingSoundHandle *handle = NULL);
|
||||
void stopTalkSound();
|
||||
bool isMouthSyncOff(uint pos);
|
||||
|
Loading…
x
Reference in New Issue
Block a user