aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2016-05-08 23:17:28 +0200
committerEugene Sandulenko2016-05-08 23:17:28 +0200
commita05f2121a16368d4d7946cd65390f7668e6fbe2f (patch)
tree7284ba55f38ba1a773b0e644c6ced9ad30dcbc5c
parent95884c396b667e048af933292f40fc18da2cefd1 (diff)
downloadscummvm-rg350-a05f2121a16368d4d7946cd65390f7668e6fbe2f.tar.gz
scummvm-rg350-a05f2121a16368d4d7946cd65390f7668e6fbe2f.tar.bz2
scummvm-rg350-a05f2121a16368d4d7946cd65390f7668e6fbe2f.zip
SCUMM HE: Safeguard division by zero
-rw-r--r--engines/scumm/he/sound_he.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/engines/scumm/he/sound_he.cpp b/engines/scumm/he/sound_he.cpp
index 9a456b86c0..2e0a03af7f 100644
--- a/engines/scumm/he/sound_he.cpp
+++ b/engines/scumm/he/sound_he.cpp
@@ -470,6 +470,10 @@ void SoundHE::processSoundOpcodes(int sound, byte *codePtr, int *soundVars) {
if (arg == 2) {
val = getSoundVar(sound, val);
}
+ if (!val) {
+ val = 1; // Safeguard for division by zero
+ warning("Incorrect value 0 for processSoundOpcodes() kludge DIV");
+ }
val = getSoundVar(sound, var) / val;
setSoundVar(sound, var, val);
break;