[Scummvm-git-logs] scummvm master -> c01939731add65f864a6c830f7c2d00f768122c1

sev- sev at scummvm.org
Tue Jul 6 15:50:15 UTC 2021


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
42c888f8c8 SAGA2: Fix out-of-bounds read.. CID 1457984
055a316fce SAGA2: Fix allocation size. CID 1457903
c01939731a SAGA2: Fix object copying. CID 1458027


Commit: 42c888f8c81f3b83caab7305d1ba42c7ecb60c6b
    https://github.com/scummvm/scummvm/commit/42c888f8c81f3b83caab7305d1ba42c7ecb60c6b
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2021-07-06T17:49:36+02:00

Commit Message:
SAGA2: Fix out-of-bounds read.. CID 1457984

Changed paths:
    engines/saga2/magic.cpp


diff --git a/engines/saga2/magic.cpp b/engines/saga2/magic.cpp
index 6a6117e46a..9c360b5378 100644
--- a/engines/saga2/magic.cpp
+++ b/engines/saga2/magic.cpp
@@ -95,15 +95,15 @@ GameObject *GetOwner(GameObject *go) {
 // This call looks up a spells object prototype. It can accept either
 //   an object ID or a spell ID
 SkillProto *skillProtoFromID(int16 spellOrObjectID) {
-	if (spellOrObjectID > MAX_SPELLS)
-		return (SkillProto *) GameObject::protoAddress(spellOrObjectID);
+	if (spellOrObjectID >= MAX_SPELLS)
+		return (SkillProto *)GameObject::protoAddress(spellOrObjectID);
 	return spellBook[spellOrObjectID].getProto();
 }
 
 //-----------------------------------------------------------------------
 // initialization call to connect skill prototypes with their spells
 void initializeSkill(SkillProto *oNo, SpellID sNo) {
-	if (sNo > 0 && sNo <= MAX_SPELLS - 1) {
+	if (sNo > 0 && sNo < MAX_SPELLS) {
 		if (spellBook[sNo].getProto() != NULL)
 			error("Duplicate prototype for spell %d", sNo);
 		spellBook[sNo].setProto(oNo);


Commit: 055a316fceb96c3502556381227caf3f5df3c2dd
    https://github.com/scummvm/scummvm/commit/055a316fceb96c3502556381227caf3f5df3c2dd
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2021-07-06T17:49:40+02:00

Commit Message:
SAGA2: Fix allocation size. CID 1457903

Changed paths:
    engines/saga2/sprite.cpp


diff --git a/engines/saga2/sprite.cpp b/engines/saga2/sprite.cpp
index b04662b726..b0dec910d9 100644
--- a/engines/saga2/sprite.cpp
+++ b/engines/saga2/sprite.cpp
@@ -717,12 +717,12 @@ ActorAppearance *LoadActorAppearance(uint32 id, int16 banksNeeded) {
 
 		as->numPoses = poseBytes / poseSize;
 
-		as->animations = (ActorAnimation **)malloc(as->numAnimations * sizeof(ActorAnimation));
+		as->animations = (ActorAnimation **)malloc(as->numAnimations * sizeof(ActorAnimation *));
 
 		for (uint i = 0; i < as->numAnimations; i++)
 			as->animations[i] = new ActorAnimation(poseStream);
 
-		as->poses = (ActorPose **)malloc(as->numPoses * sizeof(ActorPose));
+		as->poses = (ActorPose **)malloc(as->numPoses * sizeof(ActorPose *));
 
 		for (uint i = 0; i < as->numPoses; i++)
 			as->poses[i] = new ActorPose(poseStream);


Commit: c01939731add65f864a6c830f7c2d00f768122c1
    https://github.com/scummvm/scummvm/commit/c01939731add65f864a6c830f7c2d00f768122c1
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2021-07-06T17:49:40+02:00

Commit Message:
SAGA2: Fix object copying. CID 1458027

Changed paths:
    engines/saga2/objects.cpp


diff --git a/engines/saga2/objects.cpp b/engines/saga2/objects.cpp
index c6ae0aa5d7..6a32959df3 100644
--- a/engines/saga2/objects.cpp
+++ b/engines/saga2/objects.cpp
@@ -1114,16 +1114,11 @@ ObjectID GameObject::copy(const Location &l) {
 
 ObjectID GameObject::copy(const Location &l, int16 num) {
 	GameObject      *newObj;
-//	ObjectID        id = thisID();
 
 	if (isWorld(this))
 		error("World copying not allowed.");
 
 	if (isActor(this)) {
-//      newObj = newActor();
-//      newObj->move( l );
-		// REM: Call actor copy function...
-
 		error("Actor copying not yet implemented.");
 	} else {
 		if ((newObj = newObject()) == nullptr) return Nothing;
@@ -1134,7 +1129,6 @@ ObjectID GameObject::copy(const Location &l, int16 num) {
 		newObj->_data.script      = _data.script;
 		newObj->_data.objectFlags = _data.objectFlags;
 		newObj->_data.hitPoints   = _data.hitPoints;
-		newObj->_data.massCount   = _data.massCount;
 		newObj->_data.massCount   = num;
 
 		// this did occur before any of the assignments




More information about the Scummvm-git-logs mailing list