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

sev- noreply at scummvm.org
Fri Oct 25 14:00:13 UTC 2024


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

Summary:
0c67d7fb57 WAGE: Fix potential use after free. CID 1559336
d06a7f1168 COMMON: Add destructor to TextToSpeechManager. CID 1453087
ca9ad6e4dd DGDS: Plug memory leak. CID 1563899
c383b98f29 SLUDGE: Plug memory leak. CID 1383944
593aa1e964 WINTERMUTE: Plug memory leak. CID 1563426
82e3286f61 ZVISION: Plug memory leak. CID 1432261
60d2b72fb1 BACKENDS: OPENGLSDL: Fix potential division by zero. CID 1452787
045f4577a3 AGS: Fix potential division by zero. CID 1458721, 1458728
565bc2db60 HADESCH: Fix potential division by zero. CID 1438144
dae3890985 HADESCH: Fix potnetial division by zero. CID 1435877


Commit: 0c67d7fb5747e4fe8de98eb5b3349b8e40e4fd6c
    https://github.com/scummvm/scummvm/commit/0c67d7fb5747e4fe8de98eb5b3349b8e40e4fd6c
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-25T15:59:56+02:00

Commit Message:
WAGE: Fix potential use after free. CID 1559336

Changed paths:
    engines/wage/wage.cpp


diff --git a/engines/wage/wage.cpp b/engines/wage/wage.cpp
index 8c852b14809..30cfeccfd44 100644
--- a/engines/wage/wage.cpp
+++ b/engines/wage/wage.cpp
@@ -157,7 +157,9 @@ Common::Error WageEngine::run() {
 		if (_restartRequested)
 			restart();
 
-		_gui->draw();
+		if (_gui)
+			_gui->draw();
+
 		g_system->updateScreen();
 		g_system->delayMillis(50);
 
@@ -175,10 +177,14 @@ void WageEngine::restart() {
 	delete _gui;
 	delete _world;
 
+	_gui = nullptr;
+
 	_world = new World(this);
 
-	if (!_world->loadWorld(_resManager))
+	if (!_world->loadWorld(_resManager)) {
+		_shouldQuit = true;
 		return;
+	}
 
 	_shouldQuit = false;
 


Commit: d06a7f11684bf7ca5dbae62d83fdfc5d1eabddc2
    https://github.com/scummvm/scummvm/commit/d06a7f11684bf7ca5dbae62d83fdfc5d1eabddc2
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-25T15:59:56+02:00

Commit Message:
COMMON: Add destructor to TextToSpeechManager. CID 1453087

Changed paths:
    common/text-to-speech.cpp
    common/text-to-speech.h


diff --git a/common/text-to-speech.cpp b/common/text-to-speech.cpp
index 2e22b9777d6..f654670a628 100644
--- a/common/text-to-speech.cpp
+++ b/common/text-to-speech.cpp
@@ -86,6 +86,17 @@ TextToSpeechManager::TextToSpeechManager() {
 	_ttsState->_next = nullptr;
 }
 
+TextToSpeechManager::~TextToSpeechManager() {
+	while (_ttsState->_next != nullptr) {
+		Common::TTSState *oldState = _ttsState;
+		_ttsState = _ttsState->_next;
+
+		delete oldState;
+	}
+
+	delete _ttsState;
+}
+
 void TextToSpeechManager::pushState() {
 	stop();
 	TTSState *newState = new TTSState;
diff --git a/common/text-to-speech.h b/common/text-to-speech.h
index 0a98fe667de..e520361aa0b 100644
--- a/common/text-to-speech.h
+++ b/common/text-to-speech.h
@@ -157,7 +157,7 @@ public:
 	 * pitch and volume to their middle values.
 	 */
 	TextToSpeechManager();
-	virtual ~TextToSpeechManager() {}
+	virtual ~TextToSpeechManager();
 
 	/**
 	 * Says the given string


Commit: ca9ad6e4dd6627f861a40d0e8c5214cd2ebaa5ba
    https://github.com/scummvm/scummvm/commit/ca9ad6e4dd6627f861a40d0e8c5214cd2ebaa5ba
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-25T15:59:56+02:00

Commit Message:
DGDS: Plug memory leak. CID 1563899

Changed paths:
    engines/dgds/sound/resource/resource_audio.cpp


diff --git a/engines/dgds/sound/resource/resource_audio.cpp b/engines/dgds/sound/resource/resource_audio.cpp
index 41226a1c043..d81b4f549ae 100644
--- a/engines/dgds/sound/resource/resource_audio.cpp
+++ b/engines/dgds/sound/resource/resource_audio.cpp
@@ -165,6 +165,8 @@ SoundResource::~SoundResource() {
 			delete[] _tracks[trackNr].channels;
 		delete[] _tracks;
 	}
+
+	delete _resource;
 }
 
 


Commit: c383b98f29f0685a6411e990ee660abe13c5cb0c
    https://github.com/scummvm/scummvm/commit/c383b98f29f0685a6411e990ee660abe13c5cb0c
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-25T15:59:57+02:00

Commit Message:
SLUDGE: Plug memory leak. CID 1383944

Changed paths:
    engines/sludge/speech.cpp


diff --git a/engines/sludge/speech.cpp b/engines/sludge/speech.cpp
index 0a66f9a31bf..8b2b8b90ae3 100644
--- a/engines/sludge/speech.cpp
+++ b/engines/sludge/speech.cpp
@@ -68,6 +68,7 @@ void SpeechManager::kill() {
 		killMe = nullptr;
 	}
 	_speech->allSpeech.clear();
+	delete _speech;
 }
 
 void SpeechManager::setObjFontColour(ObjectType *t) {


Commit: 593aa1e964fd6d9fe28dacb980cd14ef81d4c8c5
    https://github.com/scummvm/scummvm/commit/593aa1e964fd6d9fe28dacb980cd14ef81d4c8c5
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-25T15:59:57+02:00

Commit Message:
WINTERMUTE: Plug memory leak. CID 1563426

_ptr was not freed in the destructor

Changed paths:
    engines/wintermute/base/gfx/xbuffer.h


diff --git a/engines/wintermute/base/gfx/xbuffer.h b/engines/wintermute/base/gfx/xbuffer.h
index 486ea2bdd04..ae4178a4cc8 100644
--- a/engines/wintermute/base/gfx/xbuffer.h
+++ b/engines/wintermute/base/gfx/xbuffer.h
@@ -36,8 +36,7 @@ private:
 public:
 
 	DXBuffer() {
-		_ptr = nullptr;
-		_size = 0;
+		free();
 	}
 
 	DXBuffer(uint64 size) {


Commit: 82e3286f610198054066b034c92ba70aa2114a61
    https://github.com/scummvm/scummvm/commit/82e3286f610198054066b034c92ba70aa2114a61
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-25T15:59:57+02:00

Commit Message:
ZVISION: Plug memory leak. CID 1432261

Changed paths:
    engines/zvision/scripting/actions.cpp
    engines/zvision/scripting/actions.h


diff --git a/engines/zvision/scripting/actions.cpp b/engines/zvision/scripting/actions.cpp
index 6032a497509..2cbd5fe934a 100644
--- a/engines/zvision/scripting/actions.cpp
+++ b/engines/zvision/scripting/actions.cpp
@@ -66,6 +66,10 @@ ActionAdd::ActionAdd(ZVision *engine, int32 slotKey, const Common::String &line)
 	_value = new ValueSlot(_scriptManager, buf);
 }
 
+ActionAdd::~ActionAdd() {
+	delete _value;
+}
+
 bool ActionAdd::execute() {
 	_scriptManager->setStateValue(_key, _scriptManager->getStateValue(_key) + _value->getValue());
 	return true;
diff --git a/engines/zvision/scripting/actions.h b/engines/zvision/scripting/actions.h
index 00313607d8c..343c17620ec 100644
--- a/engines/zvision/scripting/actions.h
+++ b/engines/zvision/scripting/actions.h
@@ -59,6 +59,7 @@ protected:
 class ActionAdd : public ResultAction {
 public:
 	ActionAdd(ZVision *engine, int32 slotkey, const Common::String &line);
+	~ActionAdd();
 	bool execute() override;
 
 private:


Commit: 60d2b72fb1d2b5a4ada25ac62505dc6d20fb09f7
    https://github.com/scummvm/scummvm/commit/60d2b72fb1d2b5a4ada25ac62505dc6d20fb09f7
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-25T15:59:57+02:00

Commit Message:
BACKENDS: OPENGLSDL: Fix potential division by zero. CID 1452787

Changed paths:
    backends/graphics/openglsdl/openglsdl-graphics.cpp


diff --git a/backends/graphics/openglsdl/openglsdl-graphics.cpp b/backends/graphics/openglsdl/openglsdl-graphics.cpp
index ed320391956..35dd7e3101d 100644
--- a/backends/graphics/openglsdl/openglsdl-graphics.cpp
+++ b/backends/graphics/openglsdl/openglsdl-graphics.cpp
@@ -435,6 +435,9 @@ bool OpenGLSdlGraphicsManager::loadVideoMode(uint requestedWidth, uint requested
 			ConfMan.setInt("last_window_height", requestedHeight, Common::ConfigManager::kApplicationDomain);
 			ConfMan.flushToDisk();
 		}
+
+		if (requestedHeight == 0)
+			requestedHeight = 100; // Add at least some sane value instead of dividing by zero
 	}
 
 #else


Commit: 045f4577a398ceda5c5b71687ee0b23a00ab5a65
    https://github.com/scummvm/scummvm/commit/045f4577a398ceda5c5b71687ee0b23a00ab5a65
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-25T15:59:57+02:00

Commit Message:
AGS: Fix potential division by zero. CID 1458721, 1458728

Changed paths:
    engines/ags/plugins/ags_waves/draw.cpp


diff --git a/engines/ags/plugins/ags_waves/draw.cpp b/engines/ags/plugins/ags_waves/draw.cpp
index 8e9691ef217..d6bcf36ec60 100644
--- a/engines/ags/plugins/ags_waves/draw.cpp
+++ b/engines/ags/plugins/ags_waves/draw.cpp
@@ -79,6 +79,9 @@ void AGSWaves::DrawBlur(ScriptMethodParams &params) {
 				vx++;
 			}
 
+			if (!pixels_parsed)
+				pixels_parsed = 1;
+
 			int rN = totalRed / pixels_parsed;
 			int gN = totalGreen / pixels_parsed;
 			int bN = totalBlue / pixels_parsed;
@@ -125,6 +128,9 @@ void AGSWaves::DrawBlur(ScriptMethodParams &params) {
 				vy++;
 			}
 
+			if (!pixels_parsed)
+				pixels_parsed = 1;
+
 			int rN = totalRed / pixels_parsed;
 			int gN = totalGreen / pixels_parsed;
 			int bN = totalBlue / pixels_parsed;
@@ -668,6 +674,9 @@ void AGSWaves::TintProper(ScriptMethodParams &params) {
 				vx++;
 			}
 
+			if (!pixels_parsed)
+				pixels_parsed = 1;
+
 			int rN = totalRed / pixels_parsed;
 			int gN = totalGreen / pixels_parsed;
 			int bN = totalBlue / pixels_parsed;
@@ -719,6 +728,9 @@ void AGSWaves::TintProper(ScriptMethodParams &params) {
 				vy++;
 			}
 
+			if (!pixels_parsed)
+				pixels_parsed = 1;
+
 			int rN = totalRed / pixels_parsed;
 			int gN = totalGreen / pixels_parsed;
 			int bN = totalBlue / pixels_parsed;


Commit: 565bc2db603e32c360984ac6fa479cdf3fc1d16e
    https://github.com/scummvm/scummvm/commit/565bc2db603e32c360984ac6fa479cdf3fc1d16e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-25T15:59:57+02:00

Commit Message:
HADESCH: Fix potential division by zero. CID 1438144

Changed paths:
    engines/hadesch/hadesch.cpp


diff --git a/engines/hadesch/hadesch.cpp b/engines/hadesch/hadesch.cpp
index 2fe395d099b..2a842a6ef3a 100644
--- a/engines/hadesch/hadesch.cpp
+++ b/engines/hadesch/hadesch.cpp
@@ -544,10 +544,16 @@ Common::Error HadeschEngine::run() {
 	_mixer->setVolumeForSoundType(_mixer->kSFXSoundType, ConfMan.getInt("sfx_volume"));
 	_mixer->setVolumeForSoundType(_mixer->kSpeechSoundType, ConfMan.getInt("speech_volume"));
 
-	if (!ConfMan.getBool("subtitles"))
+	if (!ConfMan.getBool("subtitles")) {
 		_subtitleDelayPerChar = -1;
-	else
+	}else {
+		int talkSpeed = ConfMan.getInt("talkspeed");
+
+		if (!talkSpeed)
+			talkSpeed = 0;
+
 		_subtitleDelayPerChar = 4500 / ConfMan.getInt("talkspeed");
+	}
 
 	debug("HadeschEngine: moving to main loop");
 	_nextRoom.clear();


Commit: dae3890985cc89b0d77d9d861a1c59d1c672aa9a
    https://github.com/scummvm/scummvm/commit/dae3890985cc89b0d77d9d861a1c59d1c672aa9a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-10-25T15:59:57+02:00

Commit Message:
HADESCH: Fix potnetial division by zero. CID 1435877

Changed paths:
    engines/hadesch/rooms/minotaur.cpp


diff --git a/engines/hadesch/rooms/minotaur.cpp b/engines/hadesch/rooms/minotaur.cpp
index 8ecb847fcc7..f96a6abc737 100644
--- a/engines/hadesch/rooms/minotaur.cpp
+++ b/engines/hadesch/rooms/minotaur.cpp
@@ -480,6 +480,10 @@ private:
 	static void readLabStream(Labyrinth &lab, Common::SharedPtr<Common::SeekableReadStream> stream) {
 		stream->readLine(); // Level number
 		int gridSize = stream->readLine().asUint64();
+
+		if (gridSize == 0)
+			gridSize = 1;
+
 		stream->readLine(); // ?
 		stream->readLine(); // ?
 		int numLines = stream->readLine().asUint64();




More information about the Scummvm-git-logs mailing list