Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kf6-kmime for openSUSE:Factory 
checked in at 2026-08-17 16:57:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kf6-kmime (Old)
 and      /work/SRC/openSUSE:Factory/.kf6-kmime.new.1258 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kf6-kmime"

Mon Aug 17 16:57:58 2026 rev:3 rq:1371392 version:6.29.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kf6-kmime/kf6-kmime.changes      2026-07-15 
16:45:42.746849526 +0200
+++ /work/SRC/openSUSE:Factory/.kf6-kmime.new.1258/kf6-kmime.changes    
2026-08-17 17:01:38.080632662 +0200
@@ -1,0 +2,13 @@
+Sun Aug  9 10:38:38 UTC 2026 - Christophe Marin <[email protected]>
+
+- Update to 6.29.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/frameworks/6/6.29.0
+- Changes since 6.28.0:
+  * Update dependency version to 6.29.0
+  * Limit the strlen search length as well
+  * Abort search for encoding word end on first error
+  * Update version to 6.29.0
+
+-------------------------------------------------------------------

Old:
----
  kmime-6.28.0.tar.xz
  kmime-6.28.0.tar.xz.sig

New:
----
  kmime-6.29.0.tar.xz
  kmime-6.29.0.tar.xz.sig

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

Other differences:
------------------
++++++ kf6-kmime.spec ++++++
--- /var/tmp/diff_new_pack.VJxodU/_old  2026-08-17 17:01:38.807658350 +0200
+++ /var/tmp/diff_new_pack.VJxodU/_new  2026-08-17 17:01:38.810658456 +0200
@@ -20,11 +20,11 @@
 %define qt6_version 6.9.0
 
 %define rname kmime
-# Full KF6 version (e.g. 6.28.0)
+# Full KF6 version (e.g. 6.29.0)
 %{!?_kf6_version: %global _kf6_version %{version}}
 %bcond_without released
 Name:           kf6-kmime
-Version:        6.28.0
+Version:        6.29.0
 Release:        0
 Summary:        Library to assist handling MIME data
 License:        LGPL-2.1-or-later


++++++ kmime-6.28.0.tar.xz -> kmime-6.29.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kmime-6.28.0/CMakeLists.txt 
new/kmime-6.29.0/CMakeLists.txt
--- old/kmime-6.28.0/CMakeLists.txt     2026-07-03 12:57:42.000000000 +0200
+++ new/kmime-6.29.0/CMakeLists.txt     2026-08-07 22:41:48.000000000 +0200
@@ -1,12 +1,12 @@
 cmake_minimum_required(VERSION 3.29)
 
-set(KF_VERSION "6.28.0") # handled by release scripts
-set(KF_DEP_VERSION "6.28.0") # handled by release scripts
+set(KF_VERSION "6.29.0") # handled by release scripts
+set(KF_DEP_VERSION "6.29.0") # handled by release scripts
 
 project(KMime VERSION ${KF_VERSION})
 
 include(FeatureSummary)
-find_package(ECM 6.28.0 NO_MODULE)
+find_package(ECM 6.29.0 NO_MODULE)
 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake 
Modules." URL "https://commits.kde.org/extra-cmake-modules";)
 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND 
FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kmime-6.28.0/autotests/headertest.cpp 
new/kmime-6.29.0/autotests/headertest.cpp
--- old/kmime-6.28.0/autotests/headertest.cpp   2026-07-03 12:57:42.000000000 
+0200
+++ new/kmime-6.29.0/autotests/headertest.cpp   2026-08-07 22:41:48.000000000 
+0200
@@ -1030,6 +1030,17 @@
     QCOMPARE(hdr.mailboxes().at(0).address(), "[email protected]");
     QCOMPARE(hdr.mailboxes().at(0).name(), encodedWord); // invalid name is 
not decoded and preserved as-is
 }
+void HeaderTest::testQuadraticQEncoding()
+{
+    QByteArray input("To:");
+    input.reserve(2'000'0000);
+    for (auto i = 0; i < 250'000; ++i) {
+        input.push_back("=?q? =? ");
+    }
+    Headers::To to;
+    to.from7BitString(input);
+    // nothing to verify, when broken this timeouts the test
+}
 
 void HeaderTest::testMissingQuotes()
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kmime-6.28.0/autotests/headertest.h 
new/kmime-6.29.0/autotests/headertest.h
--- old/kmime-6.28.0/autotests/headertest.h     2026-07-03 12:57:42.000000000 
+0200
+++ new/kmime-6.29.0/autotests/headertest.h     2026-08-07 22:41:48.000000000 
+0200
@@ -32,6 +32,7 @@
     void testInvalidButOkQEncoding();
     void testInvalidQEncoding();
     void testInvalidQEncoding_data();
+    void testQuadraticQEncoding();
     void testBug271192();
     void testBug271192_data();
     void testMissingQuotes();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kmime-6.28.0/poqm/de/libkmime6_qt.po 
new/kmime-6.29.0/poqm/de/libkmime6_qt.po
--- old/kmime-6.28.0/poqm/de/libkmime6_qt.po    2026-07-03 12:57:42.000000000 
+0200
+++ new/kmime-6.29.0/poqm/de/libkmime6_qt.po    2026-08-07 22:41:48.000000000 
+0200
@@ -1,5 +1,5 @@
+# SPDX-FileCopyrightText: 2005-2008 Thomas Reitelbach <[email protected]>
 # SPDX-FileCopyrightText: 2024 Johannes Obermayr <[email protected]>
-# SPDX-FileCopyrightText: 2005, 2006, 2007, 2008 Thomas Reitelbach 
<[email protected]>
 msgid ""
 msgstr ""
 "Project-Id-Version: libkmime6_qt\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kmime-6.28.0/poqm/nn/libkmime6_qt.po 
new/kmime-6.29.0/poqm/nn/libkmime6_qt.po
--- old/kmime-6.28.0/poqm/nn/libkmime6_qt.po    2026-07-03 12:57:42.000000000 
+0200
+++ new/kmime-6.29.0/poqm/nn/libkmime6_qt.po    2026-08-07 22:41:48.000000000 
+0200
@@ -1,5 +1,6 @@
 # Translation of libkmime6_qt to Norwegian Nynorsk
 #
+# Karl Ove Hufthammer <[email protected]>, 2008, 2020, 2024.
 # Eirik U. Birkeland <[email protected]>, 2008.
 msgid ""
 msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kmime-6.28.0/src/headerparsing.cpp 
new/kmime-6.29.0/src/headerparsing.cpp
--- old/kmime-6.28.0/src/headerparsing.cpp      2026-07-03 12:57:42.000000000 
+0200
+++ new/kmime-6.29.0/src/headerparsing.cpp      2026-08-07 22:41:48.000000000 
+0200
@@ -95,7 +95,8 @@
     // extract charset information (keep in mind: the size given to the
     // ctor is one off due to the \0 terminator):
     // harden this against null bytes in the input, Qt crashes on that
-    QByteArrayView maybeCharset(charsetStart, 
std::min<qsizetype>((languageStart ? languageStart - 1 : scursor) - 
charsetStart, std::strlen(charsetStart)));
+    const qsizetype charsetLen = (languageStart ? languageStart - 1 : scursor) 
- charsetStart;
+    QByteArrayView maybeCharset(charsetStart, std::min<qsizetype>(charsetLen, 
qstrnlen(charsetStart, charsetLen)));
 
     //
     // STEP 2:
@@ -122,7 +123,8 @@
 
     // extract the encoding information
     // harden this against null bytes in the input, Qt crashes on that
-    QByteArrayView maybeEncoding(encodingStart, std::min<qsizetype>(scursor - 
encodingStart, std::strlen(encodingStart)));
+    const qsizetype encodingLen = scursor - encodingStart;
+    QByteArrayView maybeEncoding(encodingStart, std::min<qsizetype>(scursor - 
encodingStart, qstrnlen(encodingStart, encodingLen)));
 
     // qCDebug(KMIME_LOG) << "parseEncodedWord: found charset == \"" << 
maybeCharset
     //         << "\"; language == \"" << maybeLanguage
@@ -146,11 +148,10 @@
                     if (*(scursor - 1) == '=') {
                         state.encodedWordRetryPoint = scursor - 1;
                     }
-                    continue;
                 } else { // yep, found a '?=' sequence
                     scursor += 2;
-                    break;
                 }
+                break;
             } else { // The '?' is the last char, but we need a '=' after it!
                 KMIME_WARN_PREMATURE_END_OF(EncodedWord);
                 return false;

Reply via email to