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; }
