[PATCH] QSystemLocale: bail out if accessed post-destruction
authorThiago Macieira <thiago.macieira@intel.com>
Fri, 24 Jan 2025 18:28:30 +0000 (10:28 -0800)
committerPatrick Franz <deltaone@debian.org>
Sat, 1 Mar 2025 11:21:39 +0000 (12:21 +0100)
There's little we can do, but a lot of content ends up in QLocale very
late in the execution. Let's at least not crash.

Task-number: QTBUG-133206
Change-Id: I77d41141cb115147f9befffdd5e69dac19c96044
Reviewed-by: Albert Astals Cid <aacid@kde.org>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
(cherry picked from commit e32f28034ad2383393645777bcd96eab3f696076)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit d5c5f9f3529b384d0d4bea2d51f0ad6a3d57481d)

Gbp-Pq: Name upstream_qsystemlocale_post_destruction_access.patch

src/corelib/text/qlocale_unix.cpp
src/corelib/text/qlocale_win.cpp

index a934f24c0167f18b8d6b87f966beaa62877a30d1..91dbb74c2073f5abe258bdbf7ed76fca8d8e7926 100644 (file)
@@ -127,6 +127,8 @@ QLocale QSystemLocale::fallbackLocale() const
 QVariant QSystemLocale::query(QueryType type, QVariant &&in) const
 {
     QSystemLocaleData *d = qSystemLocaleData();
+    if (!d)
+        return QVariant();
 
     if (type == LocaleChanged) {
         d->readEnvironment();
index 9fdb46a4c9222337353e5a0ba3095cdd5f6f542d..793751daaf01b158c8317deeda8babeaba83fd79 100644 (file)
@@ -828,6 +828,8 @@ QLocale QSystemLocale::fallbackLocale() const
 QVariant QSystemLocale::query(QueryType type, QVariant &&in) const
 {
     QSystemLocalePrivate *d = systemLocalePrivate();
+    if (!d)
+        return QVariant();
     switch(type) {
     case DecimalPoint:
         return d->decimalPoint();