[Scummvm-git-logs] scummvm master -> 0cde83ea01cfa1bfd3253bcfa3a7af0b7af5ad02
dreammaster
dreammaster at scummvm.org
Mon Apr 2 04:35:14 CEST 2018
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
0cde83ea01 XEEN: Fix Coverity reported overruns
Commit: 0cde83ea01cfa1bfd3253bcfa3a7af0b7af5ad02
https://github.com/scummvm/scummvm/commit/0cde83ea01cfa1bfd3253bcfa3a7af0b7af5ad02
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2018-04-01T22:35:14-04:00
Commit Message:
XEEN: Fix Coverity reported overruns
Changed paths:
engines/xeen/dialogs/dialogs_quests.cpp
engines/xeen/item.cpp
engines/xeen/party.h
engines/xeen/resources.h
diff --git a/engines/xeen/dialogs/dialogs_quests.cpp b/engines/xeen/dialogs/dialogs_quests.cpp
index 8f8ebe7..239793e 100644
--- a/engines/xeen/dialogs/dialogs_quests.cpp
+++ b/engines/xeen/dialogs/dialogs_quests.cpp
@@ -45,6 +45,7 @@ void Quests::execute() {
bool headerShown = false;
int topRow = 0;
const char **questItems = (g_vm->getGameID() == GType_Swords) ? Res.QUEST_ITEM_NAMES_SWORDS : Res.QUEST_ITEM_NAMES;
+ int itemsCount = (g_vm->getGameID() == GType_Swords) ? TOTAL_QUEST_ITEMS_SWORDS : TOTAL_QUEST_ITEMS;
addButtons();
loadQuestNotes();
@@ -67,12 +68,12 @@ void Quests::execute() {
switch (mode) {
case QUEST_ITEMS:
- for (int idx = 0; idx < TOTAL_QUEST_ITEMS; ++idx)
+ for (int idx = 0; idx < itemsCount; ++idx)
lines[idx] = "\b \b*";
count = 0;
headerShown = false;
- for (int idx = 0; idx < TOTAL_QUEST_ITEMS; ++idx) {
+ for (int idx = 0; idx < itemsCount; ++idx) {
if (party._questItems[idx]) {
if (!count && !headerShown && idx < 35) {
lines[count++] = Res.CLOUDS_OF_XEEN_LINE;
@@ -116,7 +117,7 @@ void Quests::execute() {
break;
case CURRENT_QUESTS:
- for (int idx = 0; idx < TOTAL_QUEST_ITEMS; ++idx)
+ for (int idx = 0; idx < itemsCount; ++idx)
lines[idx] = "";
count = 0;
diff --git a/engines/xeen/item.cpp b/engines/xeen/item.cpp
index a85f5ab..6a37fa1 100644
--- a/engines/xeen/item.cpp
+++ b/engines/xeen/item.cpp
@@ -89,12 +89,16 @@ const char *XeenItem::getItemName(ItemCategory category, uint id) {
if (id < 82) {
switch (category) {
case CATEGORY_WEAPON:
+ assert(id < 41);
return Res.WEAPON_NAMES[id];
case CATEGORY_ARMOR:
+ assert(id < 14);
return Res.ARMOR_NAMES[id];
case CATEGORY_ACCESSORY:
+ assert(id < 11);
return Res.ACCESSORY_NAMES[id];
default:
+ assert(id < 22);
return Res.MISC_NAMES[id];
}
} else {
@@ -108,6 +112,7 @@ const char *XeenItem::getItemName(ItemCategory category, uint id) {
case CATEGORY_ACCESSORY:
return questItems[id - 82 + 35 + 14];
default:
+ assert(g_vm->getGameID() != GType_Swords);
return questItems[id - 82 + 35 + 14 + 11];
}
}
diff --git a/engines/xeen/party.h b/engines/xeen/party.h
index ef3a67f..b0be1a2 100644
--- a/engines/xeen/party.h
+++ b/engines/xeen/party.h
@@ -53,6 +53,7 @@ enum PartyBank {
#define MAX_PARTY_COUNT 8
#define TOTAL_STATS 7
#define TOTAL_QUEST_ITEMS 85
+#define TOTAL_QUEST_ITEMS_SWORDS 51
#define TOTAL_QUEST_FLAGS 56
#define MAX_TREASURE_ITEMS 10
diff --git a/engines/xeen/resources.h b/engines/xeen/resources.h
index 007aaa3..bfd5cce 100644
--- a/engines/xeen/resources.h
+++ b/engines/xeen/resources.h
@@ -306,7 +306,7 @@ public:
const char *ITEM_CURSED;
const char *ITEM_OF;
const char *BONUS_NAMES[7];
- const char *WEAPON_NAMES[35];
+ const char *WEAPON_NAMES[41];
const char *ARMOR_NAMES[14];
const char *ACCESSORY_NAMES[11];
const char *MISC_NAMES[22];
More information about the Scummvm-git-logs
mailing list