[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