From e39ca06dbc3051c8e82c458ccd7314a2adbff27e Mon Sep 17 00:00:00 2001 From: Rob De Reycke Date: Thu, 27 Oct 2022 00:37:20 +0200 Subject: xcb: Fix segmentation fault on destruction of QXcbConnection The same screen was detected twice. Fixes: QTBUG-104319 Pick-to: 6.4 6.3 Change-Id: Id1f93d68de0306604f2e6a9104962a1d3b0db366 Reviewed-by: Liang Qi Reviewed-by: Jonas Kvinge --- src/plugins/platforms/xcb/qxcbconnection_screens.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/plugins/platforms/xcb') diff --git a/src/plugins/platforms/xcb/qxcbconnection_screens.cpp b/src/plugins/platforms/xcb/qxcbconnection_screens.cpp index 4c1b22e230..bfa22072ed 100644 --- a/src/plugins/platforms/xcb/qxcbconnection_screens.cpp +++ b/src/plugins/platforms/xcb/qxcbconnection_screens.cpp @@ -516,7 +516,8 @@ void QXcbConnection::initializeScreensFromMonitor(xcb_screen_iterator_t *it, int old.removeAll(screen); } } - m_screens << screen; + if (!m_screens.contains(screen)) + m_screens << screen; siblings << screen; // similar logic with QXcbConnection::initializeScreensFromOutput() -- cgit v1.2.3