summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2026-01-16 09:11:12 +0100
committerVaxry <vaxry@vaxry.net>2026-01-16 09:11:21 +0100
commit0b13d398fe597c9b30beb8207828586718b8a9b0 (patch)
tree0c122fdbbbd3b3f7c429b4a9d504f35ba69b6923
parentac9df44788492fd1d12da8ec0fbbf691386c45a4 (diff)
desktop/window: avoid uaf on instant removal of a window
ref https://github.com/hyprwm/Hyprland/discussions/12999
-rw-r--r--src/desktop/view/Window.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/desktop/view/Window.cpp b/src/desktop/view/Window.cpp
index 2559e0c4..7d5087e8 100644
--- a/src/desktop/view/Window.cpp
+++ b/src/desktop/view/Window.cpp
@@ -2648,15 +2648,15 @@ void CWindow::destroyWindow() {
m_xdgSurface.reset();
- if (!m_fadingOut) {
- Log::logger->log(Log::DEBUG, "Unmapped {} removed instantly", m_self.lock());
- g_pCompositor->removeWindowFromVectorSafe(m_self.lock()); // most likely X11 unmanaged or sumn
- }
-
m_listeners.unmap.reset();
m_listeners.destroy.reset();
m_listeners.map.reset();
m_listeners.commit.reset();
+
+ if (!m_fadingOut) {
+ Log::logger->log(Log::DEBUG, "Unmapped {} removed instantly", m_self.lock());
+ g_pCompositor->removeWindowFromVectorSafe(m_self.lock()); // most likely X11 unmanaged or sumn
+ }
}
void CWindow::activateX11() {