[Scummvm-git-logs] scummvm master -> 92b746c59cc93feab1434a3906194d0995c825fa
rvanlaar
noreply at scummvm.org
Sat Oct 8 08:42:02 UTC 2022
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
9e4e20962b DIRECTOR: LINGO: Fix memory leak
92b746c59c DIRECTOR: LINGO: Fix derefence befe null check
Commit: 9e4e20962b7b6986a159018247388a837fb921e3
https://github.com/scummvm/scummvm/commit/9e4e20962b7b6986a159018247388a837fb921e3
Author: Roland van Laar (roland at rolandvanlaar.nl)
Date: 2022-10-08T10:28:03+02:00
Commit Message:
DIRECTOR: LINGO: Fix memory leak
Memory leak happens when a cast is moved but without
specifying the place for it to move to.
Datum constructor gets the castMemberId by copy leaving the
resource to be dealt with by the original function.
- Includes lingo test.
Fixes COVERITY: 1498924
Changed paths:
engines/director/lingo/lingo-builtins.cpp
engines/director/lingo/tests/builtin.lingo
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index 0d3c2a27b62..75217ef34c8 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -2148,6 +2148,7 @@ void LB::b_move(int nargs) {
int id = (int) g_director->getCurrentMovie()->getCast()->_castArrayStart;
CastMemberID *castId = new CastMemberID(id, 0);
Datum d = Datum(*castId);
+ delete castId;
g_lingo->push(d);
b_findEmpty(1);
dest = g_lingo->pop();
diff --git a/engines/director/lingo/tests/builtin.lingo b/engines/director/lingo/tests/builtin.lingo
index c223ec0c86d..b8f7a793482 100644
--- a/engines/director/lingo/tests/builtin.lingo
+++ b/engines/director/lingo/tests/builtin.lingo
@@ -11,6 +11,8 @@ open "Hello" && "more" with "Finder"
move cast 1, cast 1
move cast 1, 3
move cast 3, 1
+move cast 1
+
put findEmpty(cast 10)
pasteClipBoardInto cast 2
put the width of cast 1
Commit: 92b746c59cc93feab1434a3906194d0995c825fa
https://github.com/scummvm/scummvm/commit/92b746c59cc93feab1434a3906194d0995c825fa
Author: Roland van Laar (roland at rolandvanlaar.nl)
Date: 2022-10-08T10:37:24+02:00
Commit Message:
DIRECTOR: LINGO: Fix derefence befe null check
If movie is there is a check earlier in the function.
Meaning, it's guarenteed to exist at this point.
Fixes COVERITY: 1498918
Changed paths:
engines/director/lingo/lingo-the.cpp
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index 336774b0a49..d63d73a1426 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -1635,7 +1635,7 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
warning("Lingo::setTheSprite(): Unprocessed setting field \"%s\" of sprite", field2str(field));
}
- if (channel->_dirty && movie)
+ if (channel->_dirty)
movie->getWindow()->addDirtyRect(channel->getBbox());
}
More information about the Scummvm-git-logs
mailing list