Hello community,

here is the log from the commit of package libqt5-qtdeclarative for 
openSUSE:Factory checked in at 2019-06-07 18:01:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libqt5-qtdeclarative (Old)
 and      /work/SRC/openSUSE:Factory/.libqt5-qtdeclarative.new.4811 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libqt5-qtdeclarative"

Fri Jun  7 18:01:32 2019 rev:53 rq:707637 version:5.12.3

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/libqt5-qtdeclarative/libqt5-qtdeclarative.changes    
    2019-04-26 22:52:25.773393258 +0200
+++ 
/work/SRC/openSUSE:Factory/.libqt5-qtdeclarative.new.4811/libqt5-qtdeclarative.changes
      2019-06-07 18:01:33.933794399 +0200
@@ -1,0 +2,6 @@
+Tue Jun  4 14:50:38 UTC 2019 - Fabian Vogt <fab...@ritter-vogt.de>
+
+- Add patch to fix crash (QTBUG-75203):
+  * Dont-crash-when-accessing-invalid-properties.patch
+
+-------------------------------------------------------------------

New:
----
  Dont-crash-when-accessing-invalid-properties.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libqt5-qtdeclarative.spec ++++++
--- /var/tmp/diff_new_pack.E0EGaV/_old  2019-06-07 18:01:34.721794119 +0200
+++ /var/tmp/diff_new_pack.E0EGaV/_new  2019-06-07 18:01:34.725794118 +0200
@@ -33,6 +33,8 @@
 %define tar_version qtdeclarative-everywhere-src-5.12.3
 Source:         
https://download.qt.io/official_releases/qt/5.12/%{real_version}/submodules/%{tar_version}.tar.xz
 Source1:        baselibs.conf
+# PATCH-FIX-UPSTREAM
+Patch1:         Dont-crash-when-accessing-invalid-properties.patch
 # PATCH-FIX-OPENSUSE sse2_nojit.patch -- enable JIT and sse2 only on sse2 case
 Patch100:       sse2_nojit.patch
 # PATCH-FIX-OPENSUSE Switch to use python3 at build time
@@ -68,8 +70,7 @@
 handling.
 
 %prep
-%setup -q -n %{tar_version}
-%autopatch -p1
+%autosetup -p1 -n %{tar_version}
 
 %package -n %libname
 Summary:        Qt 5 Declarative Library

++++++ Dont-crash-when-accessing-invalid-properties.patch ++++++
>From ea74f0c68cddf706c950d3910cf7b363fe24885b Mon Sep 17 00:00:00 2001
From: Ulf Hermann <ulf.herm...@qt.io>
Date: Wed, 17 Apr 2019 12:35:42 +0200
Subject: [PATCH] Don't crash when accessing invalid properties through
 QObjectWrapper

Change-Id: I613bf5dc685bb4235262b429d8f7318ea144fb9d
Fixes: QTBUG-75203
Reviewed-by: Erik Verbruggen <erik.verbrug...@qt.io>
---
 src/qml/jsruntime/qv4qobjectwrapper.cpp       |  2 +-
 .../undefinedPropertiesInObjectWrapper.qml    | 20 +++++++++++++++++++
 .../qml/qqmlecmascript/tst_qqmlecmascript.cpp | 10 ++++++++++
 3 files changed, 31 insertions(+), 1 deletion(-)
 create mode 100644 
tests/auto/qml/qqmlecmascript/data/undefinedPropertiesInObjectWrapper.qml

Index: 
qtdeclarative-everywhere-src-5.12.3/src/qml/jsruntime/qv4qobjectwrapper.cpp
===================================================================
--- 
qtdeclarative-everywhere-src-5.12.3.orig/src/qml/jsruntime/qv4qobjectwrapper.cpp
+++ qtdeclarative-everywhere-src-5.12.3/src/qml/jsruntime/qv4qobjectwrapper.cpp
@@ -856,7 +856,7 @@ ReturnedValue QObjectWrapper::virtualRes
     if (!ddata || !ddata->propertyCache) {
         QQmlPropertyData local;
         QQmlPropertyData *property = 
QQmlPropertyCache::property(engine->jsEngine(), qobj, name, qmlContext, local);
-        return getProperty(engine, qobj, property);
+        return property ? getProperty(engine, qobj, property) : 
QV4::Encode::undefined();
     }
     QQmlPropertyData *property = 
ddata->propertyCache->property(name.getPointer(), qobj, qmlContext);
 
Index: 
qtdeclarative-everywhere-src-5.12.3/tests/auto/qml/qqmlecmascript/data/undefinedPropertiesInObjectWrapper.qml
===================================================================
--- /dev/null
+++ 
qtdeclarative-everywhere-src-5.12.3/tests/auto/qml/qqmlecmascript/data/undefinedPropertiesInObjectWrapper.qml
@@ -0,0 +1,20 @@
+import QtQuick 2.12
+
+QtObject {
+    property list<QtObject> entries: [
+        QtObject {
+            readonly property color color: "green"
+        },
+        QtObject {
+        }
+    ]
+
+    property Row row: Row {
+        Repeater {
+            model: entries
+            Rectangle {
+                color: model.color ? model.color : "red"
+            }
+        }
+    }
+}
Index: 
qtdeclarative-everywhere-src-5.12.3/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
===================================================================
--- 
qtdeclarative-everywhere-src-5.12.3.orig/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
+++ 
qtdeclarative-everywhere-src-5.12.3/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
@@ -366,6 +366,7 @@ private slots:
     void tailCallWithArguments();
     void deleteSparseInIteration();
     void saveAccumulatorBeforeToInt32();
+    void undefinedPropertiesInObjectWrapper();
 
 private:
 //    static void propertyVarWeakRefCallback(v8::Persistent<v8::Value> object, 
void* parameter);
@@ -8941,6 +8942,15 @@ void tst_qqmlecmascript::saveAccumulator
     QCOMPARE(value.toString(), QLatin1String("RangeError: Maximum call stack 
size exceeded."));
 }
 
+void tst_qqmlecmascript::undefinedPropertiesInObjectWrapper()
+{
+    QQmlEngine engine;
+    QQmlComponent component(&engine, 
testFile("undefinedPropertiesInObjectWrapper.qml"));
+    QVERIFY(component.isReady());
+    QScopedPointer<QObject> object(component.create());
+    QVERIFY(!object.isNull());
+}
+
 QTEST_MAIN(tst_qqmlecmascript)
 
 #include "tst_qqmlecmascript.moc"

Reply via email to