aboutsummaryrefslogtreecommitdiff
path: root/engines/drascula
diff options
context:
space:
mode:
authorEugene Sandulenko2010-10-15 09:08:54 +0000
committerEugene Sandulenko2010-10-15 09:08:54 +0000
commit9b9e8f7d8dd8858d49c9dabbf07eab0cde6ec919 (patch)
tree234a4192018c6c52e7ef83276292f08a84112151 /engines/drascula
parentb0923dfd763efc88bf9ecc6870cbe4b97605ab13 (diff)
downloadscummvm-rg350-9b9e8f7d8dd8858d49c9dabbf07eab0cde6ec919.tar.gz
scummvm-rg350-9b9e8f7d8dd8858d49c9dabbf07eab0cde6ec919.tar.bz2
scummvm-rg350-9b9e8f7d8dd8858d49c9dabbf07eab0cde6ec919.zip
DRASCULA: Fix some code analysis warnings (bug #3087830)
svn-id: r53473
Diffstat (limited to 'engines/drascula')
-rw-r--r--engines/drascula/resource.cpp10
-rw-r--r--engines/drascula/rooms.cpp4
-rw-r--r--engines/drascula/saveload.cpp4
3 files changed, 14 insertions, 4 deletions
diff --git a/engines/drascula/resource.cpp b/engines/drascula/resource.cpp
index 1226bc2e10..57be51da43 100644
--- a/engines/drascula/resource.cpp
+++ b/engines/drascula/resource.cpp
@@ -92,13 +92,19 @@ void TextResourceParser::getLine(char *buf) {
void TextResourceParser::parseInt(int &result) {
char buf[256];
getLine(buf);
- sscanf(buf, "%d", &result);
+
+ if (!sscanf(buf, "%d", &result)) {
+ result = 0;
+ }
}
void TextResourceParser::parseString(char* result) {
char buf[256];
getLine(buf);
- sscanf(buf, "%s", result);
+
+ if (!sscanf(buf, "%s", result)) {
+ *result = 0;
+ }
}
diff --git a/engines/drascula/rooms.cpp b/engines/drascula/rooms.cpp
index 57bfad26af..c6dd9f29db 100644
--- a/engines/drascula/rooms.cpp
+++ b/engines/drascula/rooms.cpp
@@ -1945,7 +1945,9 @@ bool DrasculaEngine::exitRoom(int doorNumber) {
hare_se_ve = 1;
clearRoom();
- sscanf(_targetSurface[doorNumber], "%d", &roomNum);
+ if (!sscanf(_targetSurface[doorNumber], "%d", &roomNum)) {
+ error("Malformed roomNum in targetSurface (%s)", _targetSurface[doorNumber]);
+ }
curX = -1;
enterRoom(roomNum);
diff --git a/engines/drascula/saveload.cpp b/engines/drascula/saveload.cpp
index 4aaec5ec0e..4c288553a2 100644
--- a/engines/drascula/saveload.cpp
+++ b/engines/drascula/saveload.cpp
@@ -221,7 +221,9 @@ bool DrasculaEngine::loadGame(const char *gameName) {
takeObject = sav->readSint32LE();
pickedObject = sav->readSint32LE();
loadedDifferentChapter = 0;
- sscanf(currentData, "%d.ald", &roomNum);
+ if (!sscanf(currentData, "%d.ald", &roomNum)) {
+ error("Bad save format");
+ }
enterRoom(roomNum);
selectVerb(kVerbNone);