Package: release.debian.org
Severity: normal
X-Debbugs-Cc: kphotoal...@packages.debian.org, Debian Qt/KDE Maintainers 
<debian-qt-...@lists.debian.org>
Control: affects -1 + src:kphotoalbum
User: release.debian....@packages.debian.org
Usertags: unblock

Dear Release Team,

please unblock package kphotoalbum.

[ Reason ]
It contains the following changes:
* Backport upstream commits:
  - Fix potential crash with corrupted database file. [8230d780]
  - Fix random crash if DateBarWidget isn't properly initialized. [9aa361db]
  (kde#504491)

[ Tests ]
Reproduced the crash on startup and checked that it’s fixed with the
above patches.

[ Risks ]
Only contains 2 backported upstream commits. Further fixes can easily be
backported or the changes reverted.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing


Thanks !


unblock kphotoalbum/6.0.1-4
diff -Nru kphotoalbum-6.0.1/debian/changelog kphotoalbum-6.0.1/debian/changelog
--- kphotoalbum-6.0.1/debian/changelog  2025-03-05 15:53:01.000000000 +0100
+++ kphotoalbum-6.0.1/debian/changelog  2025-07-22 08:44:45.000000000 +0200
@@ -1,3 +1,15 @@
+kphotoalbum (6.0.1-4) unstable; urgency=medium
+
+  * Team upload.
+
+  [ Aurélien COUDERC ]
+  * Backport upstream commits:
+    - Fix potential crash with corrupted database file. [8230d780]
+    - Fix random crash if DateBarWidget isn't properly initialized. [9aa361db]
+    (kde#504491)
+
+ -- Aurélien COUDERC <couc...@debian.org>  Tue, 22 Jul 2025 08:44:45 +0200
+
 kphotoalbum (6.0.1-3) unstable; urgency=medium
 
   * Team upload
@@ -8,7 +20,7 @@
 kphotoalbum (6.0.1-2) unstable; urgency=medium
 
   * Team upload
-  * Upload to unstable 
+  * Upload to unstable
 
  -- Matthias Geiger <werdah...@debian.org>  Wed, 19 Feb 2025 15:38:49 +0100
 
diff -Nru kphotoalbum-6.0.1/debian/patches/series 
kphotoalbum-6.0.1/debian/patches/series
--- kphotoalbum-6.0.1/debian/patches/series     1970-01-01 01:00:00.000000000 
+0100
+++ kphotoalbum-6.0.1/debian/patches/series     2025-07-22 08:43:41.000000000 
+0200
@@ -0,0 +1,2 @@
+upstream_8230d780_Fix-potential-crash-with-corrupted-xml-file.patch
+upstream_9aa361db_Fix-potential-crash-if-DateBarWidget-isn-t-properly-initialized-.patch
diff -Nru 
kphotoalbum-6.0.1/debian/patches/upstream_8230d780_Fix-potential-crash-with-corrupted-xml-file.patch
 
kphotoalbum-6.0.1/debian/patches/upstream_8230d780_Fix-potential-crash-with-corrupted-xml-file.patch
--- 
kphotoalbum-6.0.1/debian/patches/upstream_8230d780_Fix-potential-crash-with-corrupted-xml-file.patch
        1970-01-01 01:00:00.000000000 +0100
+++ 
kphotoalbum-6.0.1/debian/patches/upstream_8230d780_Fix-potential-crash-with-corrupted-xml-file.patch
        2025-07-22 08:41:15.000000000 +0200
@@ -0,0 +1,46 @@
+From 8230d780727e821d7be56760d15c66de6ea92e94 Mon Sep 17 00:00:00 2001
+From: Johannes Zarl-Zierl <johan...@zarl-zierl.at>
+Date: Sat, 5 Apr 2025 01:23:02 +0200
+Subject: [PATCH] Fix potential crash with corrupted xml file
+
+Ensure that a tagged area actually has 4 components (x/y coordinates,
+width, height) before accessing those components.
+---
+ DB/ImageDB.cpp | 21 +++++++++++++--------
+ 1 file changed, 13 insertions(+), 8 deletions(-)
+
+diff --git a/DB/ImageDB.cpp b/DB/ImageDB.cpp
+index 0dd2a9709..d7b48f504 100644
+--- a/DB/ImageDB.cpp
++++ b/DB/ImageDB.cpp
+@@ -361,14 +361,19 @@ void ImageDB::readOptions(ImageInfoPtr info, 
DB::ReaderPtr reader, const QMap<QS
+ 
+                 if (reader->hasAttribute(_area_)) {
+                     QStringList areaData = 
reader->attribute(_area_).split(QString::fromUtf8(" "));
+-                    int x = areaData[0].toInt();
+-                    int y = areaData[1].toInt();
+-                    int w = areaData[2].toInt();
+-                    int h = areaData[3].toInt();
+-                    QRect area = QRect(QPoint(x, y), QPoint(x + w - 1, y + h 
- 1));
+-
+-                    if (!value.isNull()) {
+-                        info->addCategoryInfo(name, value, area);
++                    if (areaData.size() == 4) {
++                        int x = areaData[0].toInt();
++                        int y = areaData[1].toInt();
++                        int w = areaData[2].toInt();
++                        int h = areaData[3].toInt();
++                        QRect area = QRect(QPoint(x, y), QPoint(x + w - 1, y 
+ h - 1));
++
++                        if (!value.isNull()) {
++                            info->addCategoryInfo(name, value, area);
++                        }
++                    } else {
++                        qCWarning(DBLog) << "Area data has incorrect number 
of components in line" << reader->lineNumber()
++                                         << "-" << areaData;
+                     }
+                 } else {
+                     if (!value.isNull()) {
+-- 
+GitLab
+
diff -Nru 
kphotoalbum-6.0.1/debian/patches/upstream_9aa361db_Fix-potential-crash-if-DateBarWidget-isn-t-properly-initialized-.patch
 
kphotoalbum-6.0.1/debian/patches/upstream_9aa361db_Fix-potential-crash-if-DateBarWidget-isn-t-properly-initialized-.patch
--- 
kphotoalbum-6.0.1/debian/patches/upstream_9aa361db_Fix-potential-crash-if-DateBarWidget-isn-t-properly-initialized-.patch
   1970-01-01 01:00:00.000000000 +0100
+++ 
kphotoalbum-6.0.1/debian/patches/upstream_9aa361db_Fix-potential-crash-if-DateBarWidget-isn-t-properly-initialized-.patch
   2025-07-22 08:43:41.000000000 +0200
@@ -0,0 +1,27 @@
+From 9aa361dbb0493974462655a045d02dffcfada31a Mon Sep 17 00:00:00 2001
+From: Johannes Zarl-Zierl <johan...@zarl-zierl.at>
+Date: Mon, 19 May 2025 21:42:06 +0200
+Subject: [PATCH] Fix potential crash if DateBarWidget isn't properly
+ initialized.
+
+CCBUG: 504491
+---
+ DateBar/DateBarWidget.cpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/DateBar/DateBarWidget.cpp b/DateBar/DateBarWidget.cpp
+index 37bb5e220..315d68b1e 100644
+--- a/DateBar/DateBarWidget.cpp
++++ b/DateBar/DateBarWidget.cpp
+@@ -49,6 +49,8 @@ constexpr int SCROLL_ACCELERATION = 10;
+ 
+ DateBar::DateBarWidget::DateBarWidget(QWidget *parent)
+     : QWidget(parent)
++    , m_dates(QExplicitlySharedDataPointer<DB::ImageDateCollection>(
++          new DB::ImageDateCollection({})))
+     , m_currentHandler(&m_yearViewHandler)
+     , m_tp(YearView)
+     , m_currentMouseHandler(nullptr)
+-- 
+GitLab
+

Reply via email to