diff options
author | Martin Kiewitz | 2014-01-27 22:27:21 +0100 |
---|---|---|
committer | Martin Kiewitz | 2014-01-27 22:27:21 +0100 |
commit | 3f116d98bcc4374eec9117e0af4177c07b3a7ebd (patch) | |
tree | ad53d59c393eadf20598cb12fa13c09b40694f84 /engines/sci | |
parent | 0f5eeaed7b3c9d2f74eee7dff2114c5f4dc63f00 (diff) | |
download | scummvm-rg350-3f116d98bcc4374eec9117e0af4177c07b3a7ebd.tar.gz scummvm-rg350-3f116d98bcc4374eec9117e0af4177c07b3a7ebd.tar.bz2 scummvm-rg350-3f116d98bcc4374eec9117e0af4177c07b3a7ebd.zip |
SCI: fix negative array access in parseNodes
was used for debug command only
CID 1003543
Diffstat (limited to 'engines/sci')
-rw-r--r-- | engines/sci/parser/vocabulary.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/engines/sci/parser/vocabulary.cpp b/engines/sci/parser/vocabulary.cpp index f5b79d6c5e..61659f864d 100644 --- a/engines/sci/parser/vocabulary.cpp +++ b/engines/sci/parser/vocabulary.cpp @@ -724,14 +724,13 @@ int Vocabulary::parseNodes(int *i, int *pos, int type, int nr, int argc, const c newPos = parseNodes(i, pos, nextToken, nextValue, argc, argv); + if (newPos == -1) + return -1; + if (j == 0) _parserNodes[oldPos].left = &_parserNodes[newPos]; else _parserNodes[oldPos].right = &_parserNodes[newPos]; - - - if (newPos == -1) - return -1; } const char *token = argv[(*i)++]; |