[Scummvm-git-logs] scummvm master -> 09b715379bef283d2a6a84dee8a12c17654d06f4
mduggan
mgithub at guarana.org
Sun May 3 03:55:53 UTC 2020
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:
09b715379b ULTIMA8: Fix more coverity issues
Commit: 09b715379bef283d2a6a84dee8a12c17654d06f4
https://github.com/scummvm/scummvm/commit/09b715379bef283d2a6a84dee8a12c17654d06f4
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2020-05-03T12:54:28+09:00
Commit Message:
ULTIMA8: Fix more coverity issues
Changed paths:
engines/ultima/ultima8/usecode/uc_machine.cpp
engines/ultima/ultima8/world/actors/animation_tracker.cpp
engines/ultima/ultima8/world/actors/pathfinder.cpp
diff --git a/engines/ultima/ultima8/usecode/uc_machine.cpp b/engines/ultima/ultima8/usecode/uc_machine.cpp
index 0fda9da3f5..b65d6be2dc 100644
--- a/engines/ultima/ultima8/usecode/uc_machine.cpp
+++ b/engines/ultima/ultima8/usecode/uc_machine.cpp
@@ -1548,12 +1548,25 @@ void UCMachine::execProcess(UCProcess *p) {
break;
case 2: { // slist
UCList *l = new UCList(2);
- l->copyStringList(*getList(ui16a));
+ const UCList *srclist = getList(ui16a);
+ if (!srclist) {
+ perr << "Warning: invalid src list passed to slist copy"
+ << Std::endl;
+ ui16b = 0;
+ break;
+ }
+ l->copyStringList(*srclist);
ui16b = assignList(l);
}
break;
case 3: { // list
- UCList *l = getList(ui16a);
+ const UCList *l = getList(ui16a);
+ if (!l) {
+ perr << "Warning: invalid src list passed to list copy"
+ << Std::endl;
+ ui16b = 0;
+ break;
+ }
int elementsize = l->getElementSize();
UCList *l2 = new UCList(elementsize);
l2->copyList(*l);
@@ -2242,7 +2255,7 @@ void UCMachine::saveStrings(Common::WriteStream *ws) {
_stringIDs->save(ws);
ws->writeUint32LE(static_cast<uint32>(_stringHeap.size()));
- Std::map<uint16, Std::string>::iterator iter;
+ Std::map<uint16, Std::string>::const_iterator iter;
for (iter = _stringHeap.begin(); iter != _stringHeap.end(); ++iter) {
ws->writeUint16LE((*iter)._key);
ws->writeUint32LE((*iter)._value.size());
@@ -2254,7 +2267,7 @@ void UCMachine::saveLists(Common::WriteStream *ws) {
_listIDs->save(ws);
ws->writeUint32LE(_listHeap.size());
- Std::map<uint16, UCList *>::iterator iter;
+ Std::map<uint16, UCList *>::const_iterator iter;
for (iter = _listHeap.begin(); iter != _listHeap.end(); ++iter) {
ws->writeUint16LE((*iter)._key);
(*iter)._value->save(ws);
diff --git a/engines/ultima/ultima8/world/actors/animation_tracker.cpp b/engines/ultima/ultima8/world/actors/animation_tracker.cpp
index 5dac4c0656..b3b0dc0afa 100644
--- a/engines/ultima/ultima8/world/actors/animation_tracker.cpp
+++ b/engines/ultima/ultima8/world/actors/animation_tracker.cpp
@@ -49,7 +49,8 @@ AnimationTracker::AnimationTracker() : _firstFrame(true), _done(false),
_actor(0), _dir(0), _animAction(nullptr), _x(0), _y(0), _z(0),
_prevX(0), _prevY(0), _prevZ(0), _startX(0), _startY(0), _startZ(0),
_targetDx(0), _targetDy(0), _targetDz(0), _targetOffGroundLeft(0),
- _firstStep(false), _shapeFrame(0), _currentFrame(0) {
+ _firstStep(false), _shapeFrame(0), _currentFrame(0), _startFrame(0),
+ _endFrame(0), _flipped(false) {
}
AnimationTracker::~AnimationTracker() {
diff --git a/engines/ultima/ultima8/world/actors/pathfinder.cpp b/engines/ultima/ultima8/world/actors/pathfinder.cpp
index edfae3b357..472dcdea34 100644
--- a/engines/ultima/ultima8/world/actors/pathfinder.cpp
+++ b/engines/ultima/ultima8/world/actors/pathfinder.cpp
@@ -90,6 +90,7 @@ bool PathfindingState::checkItem(const Item *item, int xyRange, int zRange) cons
}
bool PathfindingState::checkHit(Actor *_actor, const Actor *target) {
+ assert(target);
#if 0
pout << "Trying hit in _direction " << _actor->getDirToItemCentre(*target) << Std::endl;
#endif
More information about the Scummvm-git-logs
mailing list