diff options
author | Filippos Karapetis | 2011-11-28 22:35:10 +0200 |
---|---|---|
committer | Filippos Karapetis | 2011-11-28 22:36:58 +0200 |
commit | 381e92a576ef05de60c1a90d534785ebd7a112c2 (patch) | |
tree | 903d7c95b2d96d82a3d1faabb5cf0ae3b7191597 /engines/sci/console.cpp | |
parent | 29fb48b74b64752b712c2b0b2a15f6ff7dd33716 (diff) | |
download | scummvm-rg350-381e92a576ef05de60c1a90d534785ebd7a112c2.tar.gz scummvm-rg350-381e92a576ef05de60c1a90d534785ebd7a112c2.tar.bz2 scummvm-rg350-381e92a576ef05de60c1a90d534785ebd7a112c2.zip |
SCI: Added handling of invalid jump offsets (e.g. QFG2, script 260)
Diffstat (limited to 'engines/sci/console.cpp')
-rw-r--r-- | engines/sci/console.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/engines/sci/console.cpp b/engines/sci/console.cpp index b852de74a9..571d2f834b 100644 --- a/engines/sci/console.cpp +++ b/engines/sci/console.cpp @@ -2978,7 +2978,8 @@ void Console::printKernelCallsFound(int kernelFuncNum, bool showFoundScripts) { // there is a jump after a ret, we don't stop processing if (opcode == op_bt || opcode == op_bnt || opcode == op_jmp) { uint16 curJmpOffset = offset + (uint16)opparams[0]; - if (curJmpOffset > maxJmpOffset) + // QFG2 has invalid jumps outside the script buffer in script 260 + if (curJmpOffset > maxJmpOffset && curJmpOffset < script->getScriptSize()) maxJmpOffset = curJmpOffset; } |