From b30c7125d73f26b5919293e6743768d5f13cedc2 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Mon, 3 Jun 2024 21:09:18 +0200 Subject: [PATCH] window: avoid nullptr deref on monitor in box helpers fixes #6321 --- src/desktop/Window.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/desktop/Window.cpp b/src/desktop/Window.cpp index 32f4d882..9f5f9dd3 100644 --- a/src/desktop/Window.cpp +++ b/src/desktop/Window.cpp @@ -176,11 +176,13 @@ CBox CWindow::getFullWindowBoundingBox() { } CBox CWindow::getWindowIdealBoundingBoxIgnoreReserved() { - const auto PMONITOR = g_pCompositor->getMonitorFromID(m_iMonitorID); - auto POS = m_vPosition; - auto SIZE = m_vSize; + if (!PMONITOR) + return {m_vPosition, m_vSize}; + + auto POS = m_vPosition; + auto SIZE = m_vSize; if (m_bIsFullscreen) { POS = PMONITOR->vecPosition; @@ -208,10 +210,10 @@ CBox CWindow::getWindowIdealBoundingBoxIgnoreReserved() { } CBox CWindow::getWindowBoxUnified(uint64_t properties) { - if (m_sAdditionalConfigData.dimAround) { const auto PMONITOR = g_pCompositor->getMonitorFromID(m_iMonitorID); - return {PMONITOR->vecPosition.x, PMONITOR->vecPosition.y, PMONITOR->vecSize.x, PMONITOR->vecSize.y}; + if (PMONITOR) + return {PMONITOR->vecPosition.x, PMONITOR->vecPosition.y, PMONITOR->vecSize.x, PMONITOR->vecSize.y}; } SWindowDecorationExtents EXTENTS = {{0, 0}, {0, 0}};