summaryrefslogtreecommitdiff
path: root/dev-qt/qtwidgets/files/qtwidgets-5.15.8-QTBUG-104917.patch
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-03-23 00:43:56 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-03-23 00:43:56 +0000
commitbe14af2d51852951dbfea41913a7dd9d1190151e (patch)
tree7db0aeb92a283f51af698d66f3771ffc3b044f6c /dev-qt/qtwidgets/files/qtwidgets-5.15.8-QTBUG-104917.patch
parent5d09fc9f5630bcabb50afc96e20ff662a0771440 (diff)
gentoo auto-resync : 23:03:2023 - 00:43:55
Diffstat (limited to 'dev-qt/qtwidgets/files/qtwidgets-5.15.8-QTBUG-104917.patch')
-rw-r--r--dev-qt/qtwidgets/files/qtwidgets-5.15.8-QTBUG-104917.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/dev-qt/qtwidgets/files/qtwidgets-5.15.8-QTBUG-104917.patch b/dev-qt/qtwidgets/files/qtwidgets-5.15.8-QTBUG-104917.patch
new file mode 100644
index 000000000000..fae665b14d2e
--- /dev/null
+++ b/dev-qt/qtwidgets/files/qtwidgets-5.15.8-QTBUG-104917.patch
@@ -0,0 +1,54 @@
+From 38c54b3ff58972fa16810740fc43933620b6dc0d Mon Sep 17 00:00:00 2001
+From: Axel Spoerl <axel.spoerl@qt.io>
+Date: Wed, 27 Jul 2022 15:17:03 +0200
+Subject: [PATCH] Add nullptr guard in
+ QStyleSheetStyle::drawPrimitive(PE_PanelLineEdit)
+
+Drawing PE_PanelLineEdit in QStyleSheetStyle with the default argument
+widget = nullptr causes a segfault.
+
+drawPrimitive tries to fall back to a container widget's render rule
+and therefore calls containerWidget() - which crashes when called with
+nullptr.
+
+Container widget fallback is pointless when drawPrimitive() is called
+with widget == nullptr. This patch skips it in that case.
+
+Fixes: QTBUG-104917
+Pick-to: 6.4 6.3 6.2
+Change-Id: I09e57dccfebb81a308944c233846d5b9ef58819e
+Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
+(cherry picked from commit effc8be3ce848770a093d51d5651908c375e83f8)
+---
+ src/widgets/styles/qstylesheetstyle.cpp | 15 +++++++++------
+ 1 file changed, 9 insertions(+), 6 deletions(-)
+
+diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp
+index 9fcb8ba522..50fdee0f69 100644
+--- a/src/widgets/styles/qstylesheetstyle.cpp
++++ b/src/widgets/styles/qstylesheetstyle.cpp
+@@ -4449,12 +4449,15 @@ void QStyleSheetStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *op
+
+ case PE_PanelLineEdit:
+ if (const QStyleOptionFrame *frm = qstyleoption_cast<const QStyleOptionFrame *>(opt)) {
+- QWidget *container = containerWidget(w);
+- if (container != w) {
+- QRenderRule containerRule = renderRule(container, opt);
+- if (!containerRule.hasNativeBorder() || !containerRule.baseStyleCanDraw())
+- return;
+- rule = containerRule;
++ // Fall back to container widget's render rule
++ if (w) {
++ QWidget *container = containerWidget(w);
++ if (container != w) {
++ QRenderRule containerRule = renderRule(container, opt);
++ if (!containerRule.hasNativeBorder() || !containerRule.baseStyleCanDraw())
++ return;
++ rule = containerRule;
++ }
+ }
+
+ if (rule.hasNativeBorder()) {
+--
+2.40.0
+