From 8a9addf42ef1577d5ae337a9a45ef2f2c585afc0 Mon Sep 17 00:00:00 2001
From: Dyami Caliri <dyami@dragonframe.com>
Date: Tue, 4 Nov 2014 13:51:53 -0800
Subject: [PATCH] QMenu check for null result from
 QPlatformMenu::menuItemForTag
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

QMenu needs to check result of QPlatformMenu::menuItemForTag to avoid
a crash dereferencing a null pointer.

Task-number: QTBUG-42327
Change-Id: Ie54a94caec7a5d756c459741df182fbe4e38bec0
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
---
 src/widgets/widgets/qmenu.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/widgets/widgets/qmenu.cpp b/src/widgets/widgets/qmenu.cpp
index 0fd645a4d38..acfccc8e192 100644
--- a/src/widgets/widgets/qmenu.cpp
+++ b/src/widgets/widgets/qmenu.cpp
@@ -3055,8 +3055,10 @@ void QMenu::actionEvent(QActionEvent *e)
             delete menuItem;
         } else if (e->type() == QEvent::ActionChanged) {
             QPlatformMenuItem *menuItem = d->platformMenu->menuItemForTag(reinterpret_cast<quintptr>(e->action()));
-            copyActionToPlatformItem(e->action(), menuItem);
-            d->platformMenu->syncMenuItem(menuItem);
+            if (menuItem) {
+                copyActionToPlatformItem(e->action(), menuItem);
+                d->platformMenu->syncMenuItem(menuItem);
+            }
         }
 
         d->platformMenu->syncSeparatorsCollapsible(d->collapsibleSeparators);
-- 
GitLab