Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package qt6-3d for openSUSE:Factory checked 
in at 2026-11-01 22:21:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qt6-3d (Old)
 and      /work/SRC/openSUSE:Factory/.qt6-3d.new.1255 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qt6-3d"

Sun Nov  1 22:21:45 2026 rev:47 rq:1394080 version:6.12.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/qt6-3d/qt6-3d.changes    2026-10-18 
19:21:15.844635030 +0200
+++ /work/SRC/openSUSE:Factory/.qt6-3d.new.1255/qt6-3d.changes  2026-11-01 
22:22:03.884631441 +0100
@@ -1,0 +2,6 @@
+Sat Oct 31 11:33:50 UTC 2026 - Christophe Marin <[email protected]>
+
+- Add upstream change:
+  * CVE-2026-111487.patch (CVE-2026-111487, QTBUG-150977)
+
+-------------------------------------------------------------------

New:
----
  CVE-2026-111487.patch

----------(New B)----------
  New:- Add upstream change:
  * CVE-2026-111487.patch (CVE-2026-111487, QTBUG-150977)
----------(New E)----------

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

Other differences:
------------------
++++++ qt6-3d.spec ++++++
--- /var/tmp/diff_new_pack.FNxBjZ/_old  2026-11-01 22:22:06.266730153 +0100
+++ /var/tmp/diff_new_pack.FNxBjZ/_new  2026-11-01 22:22:06.268730236 +0100
@@ -34,6 +34,8 @@
 URL:            https://www.qt.io
 Source0:        
https://download.qt.io/official_releases/qt/%{short_version}/%{real_version}%{tar_suffix}/submodules/%{tar_name}-%{real_version}%{tar_suffix}.tar.xz
 Source99:       qt6-3d-rpmlintrc
+# PATCH-FIX-UPSTREAM
+Patch0:         CVE-2026-111487.patch
 BuildRequires:  pkgconfig
 BuildRequires:  cmake(Qt6Concurrent) = %{real_version}
 BuildRequires:  cmake(Qt6Core) = %{real_version}
@@ -58,6 +60,10 @@
 BuildRequires:  qt6-tools
 %{qt6_doc_packages}
 %endif
+%if !%{qt6_docs_flavor}
+# system imgui can't be used
+Provides:       bundled(imgui) = 1.91.0
+%endif
 
 %description
 Qt 3D provides functionality for near-realtime simulation
@@ -520,6 +526,8 @@
 %prep
 %autosetup -p1 -n %{tar_name}-%{real_version}%{tar_suffix}
 
+rm -r src/3rdparty/assimp/{src,unzip}
+
 # Empty file used for the meta packages
 touch meta_package
 

++++++ CVE-2026-111487.patch ++++++
>From 8fd0b496ca9bc2491296865864b31f32afc8db1a Mon Sep 17 00:00:00 2001
From: Mauro Persano <[email protected]>
Date: Tue, 06 Oct 2026 15:42:50 -0300
Subject: [PATCH] assimp plugin: handle morph targets with mixed attributes

We were computing the size of all morph target buffers based on the
attributes of the first morph target. This breaks when we have morph
targets with different attributes.

Fixes: QTBUG-150977
Pick-to: 6.11 6.8
Change-Id: Ia35ef9597fbc965da42af8da438d811104cb52f5
Reviewed-by: Mike Krus <[email protected]>
(cherry picked from commit 1eefe29327c5d7dd6020c5dd0735eb8e5e798f05)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
---

diff --git a/src/plugins/sceneparsers/assimp/assimpimporter.cpp 
b/src/plugins/sceneparsers/assimp/assimpimporter.cpp
index e0df867..23072db 100644
--- a/src/plugins/sceneparsers/assimp/assimpimporter.cpp
+++ b/src/plugins/sceneparsers/assimp/assimpimporter.cpp
@@ -817,51 +817,19 @@
 
         Qt3DAnimation::QMorphingAnimation *morphingAnimation
                 = new Qt3DAnimation::QMorphingAnimation(geometryRenderer);
-        QList<QString> names;
 
         QList<Qt3DAnimation::QMorphTarget *> targets;
-        uint voff = 0;
-        uint noff = 0;
-        uint tanoff = 0;
-        uint texoff = 0;
-        uint coloff = 0;
-        uint offset = 0;
-        if (animesh->mVertices) {
-            names.push_back(VERTICES_ATTRIBUTE_NAME);
-            offset += 3;
-        }
-        if (animesh->mNormals) {
-            names.push_back(NORMAL_ATTRIBUTE_NAME);
-            noff = offset;
-            offset += 3;
-        }
-        if (animesh->mTangents) {
-            names.push_back(TANGENT_ATTRIBUTE_NAME);
-            tanoff = offset;
-            offset += 3;
-        }
-        if (animesh->mTextureCoords[0]) {
-            names.push_back(TEXTCOORD_ATTRIBUTE_NAME);
-            texoff = offset;
-            offset += 2;
-        }
-        if (animesh->mColors[0]) {
-            names.push_back(COLOR_ATTRIBUTE_NAME);
-            coloff = offset;
-        }
-
-        ushort clumpSize = (animesh->mVertices ? 3 : 0)
-                            + (animesh->mNormals ? 3 : 0)
-                            + (animesh->mTangents ? 3 : 0)
-                            + (animesh->mColors[0] ? 4 : 0)
-                            + (animesh->mTextureCoords[0] ? 2 : 0);
-
 
         for (uint i = 0; i < mesh->mNumAnimMeshes; i++) {
             aiAnimMesh *animesh = mesh->mAnimMeshes[i];
             Qt3DAnimation::QMorphTarget *target = new 
Qt3DAnimation::QMorphTarget(geometryRenderer);
             targets.push_back(target);
             QList<QAttribute *> attributes;
+            ushort clumpSize = (animesh->mVertices ? 3 : 0)
+                    + (animesh->mNormals ? 3 : 0)
+                    + (animesh->mTangents ? 3 : 0)
+                    + (animesh->mColors[0] ? 4 : 0)
+                    + (animesh->mTextureCoords[0] ? 2 : 0);
             QByteArray targetBufferArray;
             targetBufferArray.resize(clumpSize * mesh->mNumVertices * 
sizeof(float));
             float *dst = reinterpret_cast<float *>(targetBufferArray.data());
@@ -899,34 +867,39 @@
             targetBuffer->setData(targetBufferArray);
             targetBuffer->setParent(meshGeometry);
 
+            uint offset = 0;
             if (animesh->mVertices) {
                 attributes.push_back(createAttribute(targetBuffer, 
VERTICES_ATTRIBUTE_NAME,
                                                      QAttribute::Float, 3,
-                                                     animesh->mNumVertices, 
voff * sizeof(float),
+                                                     animesh->mNumVertices, 
offset * sizeof(float),
                                                      clumpSize * 
sizeof(float), meshGeometry));
+                offset += 3;
             }
             if (animesh->mNormals) {
                 attributes.push_back(createAttribute(targetBuffer, 
NORMAL_ATTRIBUTE_NAME,
                                                      QAttribute::Float, 3,
-                                                     animesh->mNumVertices, 
noff * sizeof(float),
+                                                     animesh->mNumVertices, 
offset * sizeof(float),
                                                      clumpSize * 
sizeof(float), meshGeometry));
+                offset += 3;
             }
             if (animesh->mTangents) {
                 attributes.push_back(createAttribute(targetBuffer, 
TANGENT_ATTRIBUTE_NAME,
                                                      QAttribute::Float, 3,
-                                                     animesh->mNumVertices, 
tanoff * sizeof(float),
+                                                     animesh->mNumVertices, 
offset * sizeof(float),
                                                      clumpSize * 
sizeof(float), meshGeometry));
+                offset += 3;
             }
             if (animesh->mTextureCoords[0]) {
                 attributes.push_back(createAttribute(targetBuffer, 
TEXTCOORD_ATTRIBUTE_NAME,
                                                      QAttribute::Float, 2,
-                                                     animesh->mNumVertices, 
texoff * sizeof(float),
+                                                     animesh->mNumVertices, 
offset * sizeof(float),
                                                      clumpSize * 
sizeof(float), meshGeometry));
+                offset += 2;
             }
             if (animesh->mColors[0]) {
                 attributes.push_back(createAttribute(targetBuffer, 
COLOR_ATTRIBUTE_NAME,
                                                      QAttribute::Float, 4,
-                                                     animesh->mNumVertices, 
coloff * sizeof(float),
+                                                     animesh->mNumVertices, 
offset * sizeof(float),
                                                      clumpSize * 
sizeof(float), meshGeometry));
             }
             target->setAttributes(attributes);

Reply via email to