diff options
author | Vladimir Belyavsky <belyavskyv@gmail.com> | 2023-10-22 11:07:15 +0300 |
---|---|---|
committer | Vladimir Belyavsky <belyavskyv@gmail.com> | 2023-11-02 20:55:46 +0300 |
commit | 888f786ff054d2216ddb669992ffe5aeae7f82d4 (patch) | |
tree | e76ae831d0fe3858c6e2952202fd7d4c24e1be00 | |
parent | 716aa4845a62137ad2840c87e5dd54e04a6ee736 (diff) |
Compositor: fix potential nullptr access
Check m_binding under the mutex to avoid data race and potentially
crash on nullptr access.
Fixes: QTBUG-118455
Pick-to: 6.6 6.5
Change-Id: I169c90226616e14461875aae1c72bbba2b36de8c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r-- | src/core/compositor/compositor.cpp | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/src/core/compositor/compositor.cpp b/src/core/compositor/compositor.cpp index 6bfb3140f..4d0648e1a 100644 --- a/src/core/compositor/compositor.cpp +++ b/src/core/compositor/compositor.cpp @@ -93,10 +93,8 @@ void Compositor::Observer::unbind() Compositor::Handle<Compositor> Compositor::Observer::compositor() { - if (!m_binding) - return nullptr; g_bindings.lock(); - if (m_binding->compositor) + if (m_binding && m_binding->compositor) return m_binding->compositor; // delay unlock g_bindings.unlock(); return nullptr; @@ -127,10 +125,8 @@ void Compositor::unbind() Compositor::Handle<Compositor::Observer> Compositor::observer() { - if (!m_binding) - return nullptr; g_bindings.lock(); - if (m_binding->observer) + if (m_binding && m_binding->observer) return m_binding->observer; // delay unlock g_bindings.unlock(); return nullptr; |