[Scummvm-git-logs] scummvm master -> 6585c8e42263d0a27c1b5291cf424cc064c1d3c5
athrxx
athrxx at scummvm.org
Tue Oct 26 18:26:44 UTC 2021
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
cfb9bfc8c9 KYRA: (LOL) - fix invalid use after free
6585c8e422 KYRA: (LOL) - refactor `LoLEngine::snd_loadSoundFile`
Commit: cfb9bfc8c9e28af353a93d969309ad19201e1fae
https://github.com/scummvm/scummvm/commit/cfb9bfc8c9e28af353a93d969309ad19201e1fae
Author: Benoit Pierre (benoit.pierre at gmail.com)
Date: 2021-10-26T20:26:39+02:00
Commit Message:
KYRA: (LOL) - fix invalid use after free
It's possible for `snd_loadSoundFile` to be called with a negative track number (e.g. -1).
Changed paths:
engines/kyra/sound/sound_lol.cpp
diff --git a/engines/kyra/sound/sound_lol.cpp b/engines/kyra/sound/sound_lol.cpp
index 08b4245418..661832f774 100644
--- a/engines/kyra/sound/sound_lol.cpp
+++ b/engines/kyra/sound/sound_lol.cpp
@@ -249,7 +249,7 @@ void LoLEngine::snd_loadSoundFile(int track) {
if (_sound->musicEnabled()) {
if (_flags.platform == Common::kPlatformDOS) {
int t = (track - 250) * 3;
- if (_curMusicFileIndex != _musicTrackMap[t] || _curMusicFileExt != (char)_musicTrackMap[t + 1]) {
+ if (t >= 0 && (_curMusicFileIndex != _musicTrackMap[t] || _curMusicFileExt != (char)_musicTrackMap[t + 1])) {
snd_stopMusic();
_sound->loadSoundFile(Common::String::format("LORE%02d%c", _musicTrackMap[t], (char)_musicTrackMap[t + 1]));
_curMusicFileIndex = _musicTrackMap[t];
Commit: 6585c8e42263d0a27c1b5291cf424cc064c1d3c5
https://github.com/scummvm/scummvm/commit/6585c8e42263d0a27c1b5291cf424cc064c1d3c5
Author: Benoit Pierre (benoit.pierre at gmail.com)
Date: 2021-10-26T20:26:39+02:00
Commit Message:
KYRA: (LOL) - refactor `LoLEngine::snd_loadSoundFile`
No functional changes.
Changed paths:
engines/kyra/sound/sound_lol.cpp
diff --git a/engines/kyra/sound/sound_lol.cpp b/engines/kyra/sound/sound_lol.cpp
index 661832f774..6e2f074a9a 100644
--- a/engines/kyra/sound/sound_lol.cpp
+++ b/engines/kyra/sound/sound_lol.cpp
@@ -246,19 +246,15 @@ void LoLEngine::snd_playQueuedEffects() {
}
void LoLEngine::snd_loadSoundFile(int track) {
- if (_sound->musicEnabled()) {
- if (_flags.platform == Common::kPlatformDOS) {
- int t = (track - 250) * 3;
- if (t >= 0 && (_curMusicFileIndex != _musicTrackMap[t] || _curMusicFileExt != (char)_musicTrackMap[t + 1])) {
- snd_stopMusic();
- _sound->loadSoundFile(Common::String::format("LORE%02d%c", _musicTrackMap[t], (char)_musicTrackMap[t + 1]));
- _curMusicFileIndex = _musicTrackMap[t];
- _curMusicFileExt = (char)_musicTrackMap[t + 1];
- } else {
- snd_stopMusic();
- }
- }
- }
+ if (!_sound->musicEnabled() || _flags.platform != Common::kPlatformDOS)
+ return;
+ snd_stopMusic();
+ int t = (track - 250) * 3;
+ if (t < 0 || (_curMusicFileIndex == _musicTrackMap[t] && _curMusicFileExt == (char)_musicTrackMap[t + 1]))
+ return;
+ _sound->loadSoundFile(Common::String::format("LORE%02d%c", _musicTrackMap[t], (char)_musicTrackMap[t + 1]));
+ _curMusicFileIndex = _musicTrackMap[t];
+ _curMusicFileExt = (char)_musicTrackMap[t + 1];
}
int LoLEngine::snd_playTrack(int track) {
More information about the Scummvm-git-logs
mailing list