Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kmime for openSUSE:Factory checked 
in at 2025-11-08 16:28:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kmime (Old)
 and      /work/SRC/openSUSE:Factory/.kmime.new.1980 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kmime"

Sat Nov  8 16:28:01 2025 rev:123 rq:1316245 version:25.08.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/kmime/kmime.changes      2025-10-13 
17:24:38.480534102 +0200
+++ /work/SRC/openSUSE:Factory/.kmime.new.1980/kmime.changes    2025-11-08 
16:29:12.454837576 +0100
@@ -1,0 +2,13 @@
+Thu Nov  6 18:37:48 UTC 2025 - Christophe Marin <[email protected]>
+
+- Update to 25.08.3
+  * New bugfix release
+  * For more details please see:
+  * https://kde.org/announcements/gear/25.08.3/
+- Changes since 25.08.2:
+  * Add more sanity checks for yenc part size values
+  * Peek ahead to avoid calling parseEncodedWord when parsing comments
+  * Ignore empty Newsgroup header entries
+  * Only fill result if we're going to use it
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ kmime.spec ++++++
--- /var/tmp/diff_new_pack.UpLgLB/_old  2025-11-08 16:29:12.962858846 +0100
+++ /var/tmp/diff_new_pack.UpLgLB/_new  2025-11-08 16:29:12.966859013 +0100
@@ -21,7 +21,7 @@
 
 %bcond_without released
 Name:           kmime
-Version:        25.08.2
+Version:        25.08.3
 Release:        0
 Summary:        KDE PIM libraries MIME support
 License:        LGPL-2.1-or-later


++++++ kmime-25.08.2.tar.xz -> kmime-25.08.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kmime-25.08.2/CMakeLists.txt 
new/kmime-25.08.3/CMakeLists.txt
--- old/kmime-25.08.2/CMakeLists.txt    2025-10-02 16:52:18.000000000 +0200
+++ new/kmime-25.08.3/CMakeLists.txt    2025-11-01 08:28:58.000000000 +0100
@@ -1,5 +1,5 @@
 cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
-set(PIM_VERSION "6.5.2")
+set(PIM_VERSION "6.5.3")
 
 project(KMime VERSION ${PIM_VERSION})
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kmime-25.08.2/poqm/ca/libkmime6_qt.po 
new/kmime-25.08.3/poqm/ca/libkmime6_qt.po
--- old/kmime-25.08.2/poqm/ca/libkmime6_qt.po   2025-10-02 16:52:18.000000000 
+0200
+++ new/kmime-25.08.3/poqm/ca/libkmime6_qt.po   2025-11-01 08:28:58.000000000 
+0100
@@ -3,10 +3,10 @@
 # This file is distributed under the license LGPL version 2.1 or
 # version 3 or later versions approved by the membership of KDE e.V.
 #
-# Albert Astals Cid <[email protected]>, 2004.
-# Sebastià Pla i Sanz <[email protected]>, 2006.
-# Josep M. Ferrer <[email protected]>, 2008, 2010, 2014, 2024.
-# Antoni Bella Pérez <[email protected]>, 2014.
+# SPDX-FileCopyrightText: 2004 Albert Astals Cid <[email protected]>
+# SPDX-FileCopyrightText: 2006 Sebastià Pla i Sanz <[email protected]>
+# SPDX-FileCopyrightText: 2008, 2010, 2014, 2024 Josep M. Ferrer 
<[email protected]>
+# SPDX-FileCopyrightText: 2014 Antoni Bella Pérez <[email protected]>
 msgid ""
 msgstr ""
 "Project-Id-Version: kmime\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kmime-25.08.2/poqm/ca@valencia/libkmime6_qt.po 
new/kmime-25.08.3/poqm/ca@valencia/libkmime6_qt.po
--- old/kmime-25.08.2/poqm/ca@valencia/libkmime6_qt.po  2025-10-02 
16:52:18.000000000 +0200
+++ new/kmime-25.08.3/poqm/ca@valencia/libkmime6_qt.po  2025-11-01 
08:28:58.000000000 +0100
@@ -3,10 +3,10 @@
 # This file is distributed under the license LGPL version 2.1 or
 # version 3 or later versions approved by the membership of KDE e.V.
 #
-# Albert Astals Cid <[email protected]>, 2004.
-# Sebastià Pla i Sanz <[email protected]>, 2006.
-# Josep M. Ferrer <[email protected]>, 2008, 2010, 2014, 2024.
-# Antoni Bella Pérez <[email protected]>, 2014.
+# SPDX-FileCopyrightText: 2004 Albert Astals Cid <[email protected]>
+# SPDX-FileCopyrightText: 2006 Sebastià Pla i Sanz <[email protected]>
+# SPDX-FileCopyrightText: 2008, 2010, 2014, 2024 Josep M. Ferrer 
<[email protected]>
+# SPDX-FileCopyrightText: 2014 Antoni Bella Pérez <[email protected]>
 msgid ""
 msgstr ""
 "Project-Id-Version: kmime\n"
@@ -31,7 +31,7 @@
 "displayed. This is no guarantee that the message has been read or understood."
 msgstr ""
 "El missatge enviat el ${date} a ${to} amb l'assumpte «${subject}» s'ha "
-"mostrat. Açò no és garantia que este haja estat llegit o comprés."
+"mostrat. Açò no és garantia que este haja sigut llegit o comprés."
 
 #: mdn.cpp:60
 msgctxt "DispositionModifier|"
@@ -41,7 +41,7 @@
 "\" and nonetheless read later on."
 msgstr ""
 "El missatge enviat el ${date} a ${to} amb l'assumpte «${subject}» s'ha "
-"suprimit sense veure'l. Açò no és garantia que este no haja estat "
+"suprimit sense veure'l. Açò no és garantia que este no haja sigut "
 "«recuperat» i llegit més tard."
 
 #: mdn.cpp:68
@@ -51,7 +51,7 @@
 "dispatched. This is no guarantee that the message will not be read later on."
 msgstr ""
 "El missatge enviat el ${date} a ${to} amb l'assumpte «${subject}» s'ha "
-"despatxat. Açò no és garantia que este no haja estat llegit més tard."
+"despatxat. Açò no és garantia que este no haja sigut llegit més tard."
 
 #: mdn.cpp:75
 msgctxt "DispositionModifier|"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kmime-25.08.2/poqm/de/libkmime6_qt.po 
new/kmime-25.08.3/poqm/de/libkmime6_qt.po
--- old/kmime-25.08.2/poqm/de/libkmime6_qt.po   2025-10-02 16:52:18.000000000 
+0200
+++ new/kmime-25.08.3/poqm/de/libkmime6_qt.po   2025-11-01 08:28:58.000000000 
+0100
@@ -1,5 +1,5 @@
 # SPDX-FileCopyrightText: 2024 Johannes Obermayr <[email protected]>
-# Thomas Reitelbach <[email protected]>, 2005, 2006, 2007, 2008.
+# 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-25.08.2/poqm/ro/libkmime6_qt.po 
new/kmime-25.08.3/poqm/ro/libkmime6_qt.po
--- old/kmime-25.08.2/poqm/ro/libkmime6_qt.po   2025-10-02 16:52:18.000000000 
+0200
+++ new/kmime-25.08.3/poqm/ro/libkmime6_qt.po   2025-11-01 08:28:58.000000000 
+0100
@@ -2,30 +2,26 @@
 # Copyright (C) 2008 This_file_is_part_of_KDE
 # This file is distributed under the same license as the libkmime package.
 # Laurenţiu Buzdugan <[email protected]>, 2008".
-# Sergiu Bivol <[email protected]>, 2009.
+# SPDX-FileCopyrightText: 2009, 2025 Sergiu Bivol <[email protected]>
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: libkmime\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2023-11-20 01:59+0000\n"
-"PO-Revision-Date: 2009-01-14 11:49+0200\n"
+"PO-Revision-Date: 2025-10-19 02:33+0100\n"
 "Last-Translator: Sergiu Bivol <[email protected]>\n"
-"Language-Team: Romanian <[email protected]>\n"
+"Language-Team: Romanian <[email protected]>\n"
 "Language: ro\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
 "20)) ? 1 : 2;\n"
+"X-Generator: Lokalize 25.08.1\n"
 "X-Qt-Contexts: true\n"
 
 #: mdn.cpp:53
-#, fuzzy
-#| msgid ""
-#| "The message sent on ${date} to ${to} with subject \"${subject}\" has been "
-#| "displayed. This is no guarantee that the message has been read or "
-#| "understood."
 msgctxt "DispositionModifier|"
 msgid ""
 "The message sent on ${date} to ${to} with subject \"${subject}\" has been "
@@ -35,11 +31,6 @@
 "afișat. Aceasta nu este o garanție că mesajul a fost citit sau înțeles."
 
 #: mdn.cpp:60
-#, fuzzy
-#| msgid ""
-#| "The message sent on ${date} to ${to} with subject \"${subject}\" has been "
-#| "deleted unseen. This is no guarantee that the message will not be "
-#| "\"undeleted\" and nonetheless read later on."
 msgctxt "DispositionModifier|"
 msgid ""
 "The message sent on ${date} to ${to} with subject \"${subject}\" has been "
@@ -51,11 +42,6 @@
 "recuperat și citit totuși mai târziu."
 
 #: mdn.cpp:68
-#, fuzzy
-#| msgid ""
-#| "The message sent on ${date} to ${to} with subject \"${subject}\" has been "
-#| "dispatched. This is no guarantee that the message will not be read later "
-#| "on."
 msgctxt "DispositionModifier|"
 msgid ""
 "The message sent on ${date} to ${to} with subject \"${subject}\" has been "
@@ -66,10 +52,6 @@
 "târziu."
 
 #: mdn.cpp:75
-#, fuzzy
-#| msgid ""
-#| "The message sent on ${date} to ${to} with subject \"${subject}\" has been "
-#| "processed by some automatic means."
 msgctxt "DispositionModifier|"
 msgid ""
 "The message sent on ${date} to ${to} with subject \"${subject}\" has been "
@@ -79,11 +61,6 @@
 "procesat printr-un mijloc automatizat."
 
 #: mdn.cpp:81
-#, fuzzy
-#| msgid ""
-#| "The message sent on ${date} to ${to} with subject \"${subject}\" has been "
-#| "acted upon. The sender does not wish to disclose more details to you than "
-#| "that."
 msgctxt "DispositionModifier|"
 msgid ""
 "The message sent on ${date} to ${to} with subject \"${subject}\" has been "
@@ -94,11 +71,6 @@
 "prelucrat. Expeditorul nu vrea să vă ofere mai multe detalii."
 
 #: mdn.cpp:88
-#, fuzzy
-#| msgid ""
-#| "Generation of a Message Disposition Notification for the message sent on "
-#| "${date} to ${to} with subject \"${subject}\" failed. Reason is given in "
-#| "the Failure: header field below."
 msgctxt "DispositionModifier|"
 msgid ""
 "Generation of a Message Disposition Notification for the message sent on "
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kmime-25.08.2/src/headerparsing.cpp 
new/kmime-25.08.3/src/headerparsing.cpp
--- old/kmime-25.08.2/src/headerparsing.cpp     2025-10-02 16:52:18.000000000 
+0200
+++ new/kmime-25.08.3/src/headerparsing.cpp     2025-11-01 08:28:58.000000000 
+0100
@@ -309,7 +309,7 @@
 
 bool parseGenericQuotedString(const char *&scursor, const char *const send,
                               QString &result, bool isCRLF,
-                              const char openChar, const char closeChar)
+                              const char openChar, const char closeChar, bool 
fillResult)
 {
     // We are in a quoted-string or domain-literal or comment and the
     // cursor points to the first char after the openChar.
@@ -332,7 +332,9 @@
             // misses "\" CRLF LWSP-char handling, see rfc822, 3.4.5
             READ_ch_OR_FAIL;
             KMIME_WARN_IF_8BIT(ch);
-            result += QLatin1Char(ch);
+            if (fillResult) {
+                result += QLatin1Char(ch);
+            }
             break;
         case '\r':
             // ###
@@ -346,7 +348,9 @@
             if (ch != '\n') {
                 // CR on its own...
                 KMIME_WARN_LONE(CR);
-                result += QLatin1Char('\r');
+                if (fillResult) {
+                    result += QLatin1Char('\r');
+                }
                 scursor--; // points to after the '\r' again
             } else {
                 // CRLF encountered.
@@ -356,13 +360,17 @@
                     // correct folding;
                     // position cursor behind the CRLF WSP (unfolding)
                     // and add the WSP to the result
-                    result += QLatin1Char(ch);
+                    if (fillResult) {
+                        result += QLatin1Char(ch);
+                    }
                 } else {
                     // this is the "shouldn't happen"-case. There is a CRLF
                     // inside a quoted-string without it being part of FWS.
                     // We take it verbatim.
                     KMIME_WARN_NON_FOLDING(CRLF);
-                    result += QLatin1StringView("\r\n");
+                    if (fillResult) {
+                        result += QLatin1StringView("\r\n");
+                    }
                     // the cursor is decremented again, we need not
                     // duplicate the whole switch here. "ch" could've been
                     // everything (incl. openChar or closeChar).
@@ -382,11 +390,15 @@
             if (!isCRLF && (ch == ' ' || ch == '\t')) {
                 // folding
                 // correct folding
-                result += QLatin1Char(ch);
+                if (fillResult) {
+                    result += QLatin1Char(ch);
+                }
             } else {
                 // non-folding
                 KMIME_WARN_LONE(LF);
-                result += QLatin1Char('\n');
+                if (fillResult) {
+                    result += QLatin1Char('\n');
+                }
                 // pos is decremented, so's we need not duplicate the whole
                 // switch here. ch could've been everything (incl. <">, "\").
                 scursor--;
@@ -403,10 +415,12 @@
             QString tmp;
             QByteArray lang;
             QByteArray charset;
-            if (*scursor++ == '?') {
+            if (*scursor++ == '?' && scursor != send && *(scursor+1) != '?') {
                 --scursor;
                 if (parseEncodedWord(scursor, send, tmp, lang, charset)) {
-                    result += tmp;
+                    if (fillResult) {
+                        result += tmp;
+                    }
                     //qDebug() << " tmp " << tmp;
                     if (scursor == send) {
                         break;
@@ -444,7 +458,9 @@
         }
         default:
             KMIME_WARN_IF_8BIT(ch);
-            result += QLatin1Char(ch);
+            if (fillResult) {
+                result += QLatin1Char(ch);
+            }
         }
     }
 
@@ -467,7 +483,7 @@
 
     while (commentNestingDepth) {
         QString cmntPart;
-        if (parseGenericQuotedString(scursor, send, cmntPart, isCRLF, '(', 
')')) {
+        if (parseGenericQuotedString(scursor, send, cmntPart, isCRLF, '(', 
')', reallySave)) {
             assert(*(scursor - 1) == ')' || *(scursor - 1) == '(');
             // see the kdoc for the above function for the possible conditions
             // we have to check:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kmime-25.08.2/src/headerparsing_p.h 
new/kmime-25.08.3/src/headerparsing_p.h
--- old/kmime-25.08.2/src/headerparsing_p.h     2025-10-02 16:52:18.000000000 
+0200
+++ new/kmime-25.08.3/src/headerparsing_p.h     2025-11-01 08:28:58.000000000 
+0100
@@ -69,7 +69,7 @@
 /** @p scursor must be positioned after the opening openChar. */
 [[nodiscard]] bool parseGenericQuotedString(const char *&scursor, const char 
*const send,
                          QString &result, bool isCRLF,
-                         const char openChar = '"', const char closeChar = 
'"');
+                         const char openChar = '"', const char closeChar = 
'"', bool fillResult = true);
 
 /** @p scursor must be positioned right after the opening '(' */
 [[nodiscard]] bool parseComment(const char *&scursor, const char *const send, 
QString &result,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kmime-25.08.2/src/headers.cpp 
new/kmime-25.08.3/src/headers.cpp
--- old/kmime-25.08.2/src/headers.cpp   2025-10-02 16:52:18.000000000 +0200
+++ new/kmime-25.08.3/src/headers.cpp   2025-11-01 08:28:58.000000000 +0100
@@ -1502,20 +1502,22 @@
     Q_D(Newsgroups);
     d->groups.clear();
     while (true) {
-      eatCFWS(scursor, send, isCRLF);
-      if (scursor != send && *scursor == ',') {
-        ++scursor;
-      }
-      eatCFWS(scursor, send, isCRLF);
-      if (scursor == send) {
-        return true;
-      }
-      const char *start = scursor;
-      while (scursor != send && !isspace(*scursor) && *scursor != ',') {
-        ++scursor;
-      }
-      QByteArray group(start, scursor - start);
-      d->groups.append(group);
+        eatCFWS(scursor, send, isCRLF);
+        if (scursor != send && *scursor == ',') {
+            ++scursor;
+        }
+        eatCFWS(scursor, send, isCRLF);
+        if (scursor == send) {
+            return true;
+        }
+        const char *start = scursor;
+        while (scursor != send && !isspace(*scursor) && *scursor != ',') {
+            ++scursor;
+        }
+        if (start != scursor) {
+            QByteArray group(start, scursor - start);
+            d->groups.append(group);
+        }
     }
     return true;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kmime-25.08.2/src/parsers.cpp 
new/kmime-25.08.3/src/parsers.cpp
--- old/kmime-25.08.2/src/parsers.cpp   2025-10-02 16:52:18.000000000 +0200
+++ new/kmime-25.08.3/src/parsers.cpp   2025-11-01 08:28:58.000000000 +0100
@@ -365,8 +365,7 @@
                     success = false;
                     break;
                 }
-                if (!yencMeta(meta, "begin", &partBegin) ||
-                        !yencMeta(meta, "end", &partEnd)) {
+                if (!yencMeta(meta, "begin", &partBegin) || !yencMeta(meta, 
"end", &partEnd) || partEnd < partBegin || partEnd == 
std::numeric_limits<int>::max()) {
                     success = false;
                     break;
                 }

Reply via email to