aboutsummaryrefslogtreecommitdiff
path: root/saveload.cpp
diff options
context:
space:
mode:
authorLudvig Strigeus2001-11-06 21:29:23 +0000
committerLudvig Strigeus2001-11-06 21:29:23 +0000
commit78413a1c438ac697cd37e444d1c05461cf8d1f0a (patch)
tree3bce2f381c4c9c903b487e19de23acc68c764788 /saveload.cpp
parent90cea864af14a784ef7fe26fbc8a58b911db6230 (diff)
downloadscummvm-rg350-78413a1c438ac697cd37e444d1c05461cf8d1f0a.tar.gz
scummvm-rg350-78413a1c438ac697cd37e444d1c05461cf8d1f0a.tar.bz2
scummvm-rg350-78413a1c438ac697cd37e444d1c05461cf8d1f0a.zip
fix in save game loader,
sizeof(an element) * number of elements instead of sizeof(a pointer) fixed it, buffer out of bounds read fixed in Scumm::isMaskActiveAt svn-id: r3466
Diffstat (limited to 'saveload.cpp')
-rw-r--r--saveload.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/saveload.cpp b/saveload.cpp
index c4dd27a3b4..db12578cde 100644
--- a/saveload.cpp
+++ b/saveload.cpp
@@ -79,12 +79,12 @@ bool Scumm::loadState(const char *filename) {
CHECK_HEAP
openRoom(-1);
- memset(_inventory, 0, sizeof(_inventory));
+ memset(_inventory, 0, sizeof(_inventory[0])*_numInventory);
/* Nuke all resources */
- for (i=1; i<16; i++)
- if (!(i==13 || i==12 || i==10 || res.mode[i]))
- for(j=1; j<res.num[i]; j++)
+ for (i=1; i<=16; i++)
+ if (!(i==rtFlObject || i==rtTemp || i==rtBuffer || res.mode[i]))
+ for(j=0; j<res.num[i]; j++)
nukeResource(i,j);
initScummVars();