diff options
author | V3n3RiX <venerix@koprulu.sector> | 2023-07-14 10:36:56 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2023-07-14 10:36:56 +0100 |
commit | 5af5a2b4acc97daacc0bf0e1d4e85ec780734689 (patch) | |
tree | c3e48a276c7fda27c8e30b6b8864e178e5c496fb /dev-qt/qtwayland/files | |
parent | 605eb6cd753ab91e58e7561ebad2e75a44bcccc4 (diff) |
gentoo auto-resync : 14:07:2023 - 10:36:56
Diffstat (limited to 'dev-qt/qtwayland/files')
-rw-r--r-- | dev-qt/qtwayland/files/qtwayland-5.15.10-Destroy-frame-queue-before-display.patch | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/dev-qt/qtwayland/files/qtwayland-5.15.10-Destroy-frame-queue-before-display.patch b/dev-qt/qtwayland/files/qtwayland-5.15.10-Destroy-frame-queue-before-display.patch new file mode 100644 index 000000000000..1fdf08dc7487 --- /dev/null +++ b/dev-qt/qtwayland/files/qtwayland-5.15.10-Destroy-frame-queue-before-display.patch @@ -0,0 +1,43 @@ +https://bugs.gentoo.org/910315 +https://invent.kde.org/qt/qt/qtwayland/-/merge_requests/73 + +Reported downstream in Gentoo at https://bugs.gentoo.org/910315. + +`kde/5.15` has b981fc82eb37700353949c72d3fd6d0887c8c107 ('[PATCH 27/51] Reduce memory leakage') +backported but this introduces a use-after-free because `wl_event_queue_destroy` must be called +before `wl_display_disconnect`. So, just backport the upstream fix which sorts out the order. + +Upstream review: https://codereview.qt-project.org/c/qt/qtwayland/+/471416 +Upstream review (6.x): https://codereview.qt-project.org/c/qt/qtwayland/+/471528 + +From 3a8613b91d2239aebc73b43562f929aa71af0de5 Mon Sep 17 00:00:00 2001 +From: David Redondo <qt@david-redondo.de> +Date: Tue, 11 Apr 2023 14:27:27 +0200 +Subject: [PATCH] Destroy frame queue before display + +wl_event_queue_destroy accesses the display. +Found by running a test under valgrind. + +Pick-to: 6.5 +Change-Id: Ic89cbd3b6e98b4fc9561b0e63b5fab4886a1ec50 +Reviewed-by: David Edmundson <davidedmundson@kde.org> +(cherry picked from commit a76bf824fcd1cc3789f0d3454a0423c0241d9718) +--- a/src/client/qwaylanddisplay.cpp ++++ b/src/client/qwaylanddisplay.cpp +@@ -379,11 +379,12 @@ QWaylandDisplay::~QWaylandDisplay(void) + #if QT_CONFIG(cursor) + qDeleteAll(mCursorThemes); + #endif +- if (mDisplay) +- wl_display_disconnect(mDisplay); + + if (m_frameEventQueue) + wl_event_queue_destroy(m_frameEventQueue); ++ ++ if (mDisplay) ++ wl_display_disconnect(mDisplay); + } + + // Steps which is called just after constructor. This separates registry_global() out of the constructor +-- +2.41.0 |