[Scummvm-git-logs] scummvm master -> 9999b9f2b0c47d6aae55ce742de1ca7297c9f802

Strangerke noreply at scummvm.org
Thu Jun 26 05:32:34 UTC 2025


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

Summary:
9999b9f2b0 M4: Fix multiple null dereferencing in guiMenu::eventHandler (Coverity SID 1591662)


Commit: 9999b9f2b0c47d6aae55ce742de1ca7297c9f802
    https://github.com/scummvm/scummvm/commit/9999b9f2b0c47d6aae55ce742de1ca7297c9f802
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2025-06-26T06:32:19+01:00

Commit Message:
M4: Fix multiple null dereferencing in guiMenu::eventHandler (Coverity SID 1591662)

Changed paths:
    engines/m4/gui/gui_menu_items.cpp


diff --git a/engines/m4/gui/gui_menu_items.cpp b/engines/m4/gui/gui_menu_items.cpp
index 98a4a851b1f..a3924e6e1fc 100644
--- a/engines/m4/gui/gui_menu_items.cpp
+++ b/engines/m4/gui/gui_menu_items.cpp
@@ -426,7 +426,7 @@ bool guiMenu::eventHandler(guiMenu *theMenu, int32 eventType, int32 parm1, int32
 	// If we are currently handling the events for an item, continue until that item releases control
 	if (_GM(menuCurrItem)) {
 		handled = (_GM(menuCurrItem)->itemEventHandler)(_GM(menuCurrItem), eventType, parm1, menuX, menuY, (void **)&_GM(menuCurrItem));
-		if (_GM(menuCurrItem)) {
+		if (_GM(menuCurrItem) && currScreen) {
 			*currScreen = true;
 		}
 		if (handled) {
@@ -447,7 +447,7 @@ bool guiMenu::eventHandler(guiMenu *theMenu, int32 eventType, int32 parm1, int32
 		if (myItem) {
 			if (myItem->itemEventHandler) {
 				(myItem->itemEventHandler)(myItem, eventType, parm1, menuX, menuY, (void **)&_GM(menuCurrItem));
-				if (_GM(menuCurrItem)) {
+				if (_GM(menuCurrItem) && currScreen) {
 					*currScreen = true;
 				}
 				return true;
@@ -473,7 +473,8 @@ bool guiMenu::eventHandler(guiMenu *theMenu, int32 eventType, int32 parm1, int32
 	case _ME_L_click:
 	case _ME_doubleclick:
 		if (!(myScreen->scrnFlags & SF_IMMOVABLE)) {
-			*currScreen = true;
+			if(currScreen)
+				*currScreen = true;
 			movingScreen = true;
 			movingX = parm2;
 			movingY = parm3;
@@ -491,7 +492,8 @@ bool guiMenu::eventHandler(guiMenu *theMenu, int32 eventType, int32 parm1, int32
 
 	case _ME_L_release:
 	case _ME_doubleclick_release:
-		*currScreen = false;
+		if (currScreen)
+			*currScreen = false;
 		movingScreen = false;
 		break;
 




More information about the Scummvm-git-logs mailing list