Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kmime for openSUSE:Factory checked in at 2026-05-11 16:49:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kmime (Old) and /work/SRC/openSUSE:Factory/.kmime.new.1966 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kmime" Mon May 11 16:49:45 2026 rev:129 rq:1351683 version:26.04.1 Changes: -------- --- /work/SRC/openSUSE:Factory/kmime/kmime.changes 2026-04-17 21:49:06.632663935 +0200 +++ /work/SRC/openSUSE:Factory/.kmime.new.1966/kmime.changes 2026-05-11 16:50:45.520479863 +0200 @@ -1,0 +2,10 @@ +Thu May 7 08:02:58 UTC 2026 - Christophe Marin <[email protected]> + +- Update to 26.04.1 + * New bugfix release + * For more details please see: + * https://kde.org/announcements/gear/26.04.1/ +- Changes since 26.04.0: + * Harden RFC 2047 parsing against null bytes in the charset, take II (kde#519599) + +------------------------------------------------------------------- Old: ---- kmime-26.04.0.tar.xz kmime-26.04.0.tar.xz.sig New: ---- kmime-26.04.1.tar.xz kmime-26.04.1.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kmime.spec ++++++ --- /var/tmp/diff_new_pack.Uk6lNv/_old 2026-05-11 16:50:46.076502741 +0200 +++ /var/tmp/diff_new_pack.Uk6lNv/_new 2026-05-11 16:50:46.080502905 +0200 @@ -21,7 +21,7 @@ %bcond_without released Name: kmime -Version: 26.04.0 +Version: 26.04.1 Release: 0 Summary: KDE PIM libraries MIME support License: LGPL-2.1-or-later ++++++ kmime-26.04.0.tar.xz -> kmime-26.04.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmime-26.04.0/CMakeLists.txt new/kmime-26.04.1/CMakeLists.txt --- old/kmime-26.04.0/CMakeLists.txt 2026-04-09 15:41:53.000000000 +0200 +++ new/kmime-26.04.1/CMakeLists.txt 2026-05-03 05:52:33.000000000 +0200 @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.27) -set(PIM_VERSION "6.7.0") +set(PIM_VERSION "6.7.1") project(KMime VERSION ${PIM_VERSION}) @@ -27,7 +27,7 @@ include(ECMCheckOutboundLicense) include(ECMPoQmTools) -set(QT_REQUIRED_VERSION "6.7.0") +set(QT_REQUIRED_VERSION "6.7.1") find_package(Qt6 ${QT_REQUIRED_VERSION} CONFIG REQUIRED Core) Binary files old/kmime-26.04.0/autotests/data/bug519599.mbox and new/kmime-26.04.1/autotests/data/bug519599.mbox differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmime-26.04.0/autotests/messagetest.cpp new/kmime-26.04.1/autotests/messagetest.cpp --- old/kmime-26.04.0/autotests/messagetest.cpp 2026-04-09 15:41:53.000000000 +0200 +++ new/kmime-26.04.1/autotests/messagetest.cpp 2026-05-03 05:52:33.000000000 +0200 @@ -726,6 +726,21 @@ QTest::newRow("yenc-corrupt-size") << u"yenc-single-part.yenc"_s; QTest::newRow("yenc-mail-part") << u"yenc-mail-part.txt"_s; QTest::newRow("uuencode-no-filename") << u"clusterfuzz-testcase-minimized-kmime_fuzzer-6349101081100288"_s; + QTest::newRow("bug519599") << u"bug519599.mbox"_s; +} + +// same as ossfuzz/kmime_fuzzer.cc, so we also see the same memory accesss issues here +static void traverseContent(const KMime::Content *content) +{ + for (const auto c : content->contents()) { + const auto decodedBody = c->decodedBody(); + const auto decodedText = c->decodedText(); + for (const auto header : c->headers()) { + const auto headerAs7BitString = header->as7BitString(); + const auto headerAsUnicodeString = header->asUnicodeString(); + } + traverseContent(c); + } } void MessageTest::testGarbage() @@ -734,6 +749,7 @@ QFETCH(QString, filename); auto msg = readAndParseMail(filename); QVERIFY(msg); + traverseContent(msg.get()); } void MessageTest::testUuencode() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmime-26.04.0/poqm/lt/libkmime6_qt.po new/kmime-26.04.1/poqm/lt/libkmime6_qt.po --- old/kmime-26.04.0/poqm/lt/libkmime6_qt.po 2026-04-09 15:41:53.000000000 +0200 +++ new/kmime-26.04.1/poqm/lt/libkmime6_qt.po 2026-05-03 05:52:33.000000000 +0200 @@ -6,7 +6,7 @@ "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-03-07 16:19+0300\n" +"PO-Revision-Date: 2026-05-02 15:26+0300\n" "Last-Translator: Andrius Štikonas <[email protected]>\n" "Language-Team: Lithuanian <[email protected]>\n" "Language: lt\n" @@ -16,95 +16,69 @@ "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n%10>=2 && (n%100<10 || n" "%100>=20) ? 1 : n%10==0 || (n%100>10 && n%100<20) ? 2 : 3);\n" "X-Qt-Contexts: true\n" +"X-Generator: Poedit 3.8\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 " "displayed. This is no guarantee that the message has been read or understood." msgstr "" -"Laiškas išsiųstas ${date} adresu ${to} tema „${subject}“ buvo parodytas. " -"Nėra garantijų, kad laiškas buvo perskaitytas ar suprastas." +"Laiškas, kuris ${date} buvo išsiųstas adresu ${to} ir kurio tema " +"„${subject}“, buvo parodytas. Tai nereiškia, kad laiškas buvo perskaitytas " +"ar suprastas." #: 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 " "deleted unseen. This is no guarantee that the message will not be \"undeleted" "\" and nonetheless read later on." msgstr "" -"Laiškas išsiųstas ${date} adresu ${to} tema „${subject}“ buvo ištrintas " -"adresatui jo nepamačius. Nėra garantijos, kad laiško statusas nebus vėliau " -"pakeistas į „neištrintą“ ir jis nebus perskaitytas." +"Laiškas, kuris ${date} buvo išsiųstas adresu ${to} ir kurio tema " +"„${subject}“, buvo ištrintas adresatui jo neperžiūrėjus. Tai nereiškia, kad " +"laiškas nebus atkurtas iš ištrintų laiškų ir vėliau nebus perskaitytas." #: 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 " "dispatched. This is no guarantee that the message will not be read later on." msgstr "" -"Laiškas išsiųstas ${date} adresu ${to} pavadintas „${subject}“ buvo " -"apdorotas (pvz., persiųstas). Tai nereiškia, kad laiškas vėliau nebus " -"perskaitytas." +"Laiškas, kuris ${date} buvo išsiųstas adresu ${to} ir kurio tema " +"„${subject}“, buvo sutvarkytas (pvz., persiųstas). Tai nereiškia, kad " +"laiškas vėliau nebus perskaitytas." #: 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 " "processed by some automatic means." msgstr "" -"Laiškas išsiųstas ${date} adresu ${to} tema „${subject}“ buvo apdorotas " -"kažkokia automatine priemone." +"Laiškas, kuris ${date} buvo išsiųstas adresu ${to} ir kurio tema " +"„${subject}“, buvo apdorotas naudojant kažkokią automatinę priemonę." #: 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 " "acted upon. The sender does not wish to disclose more details to you than " "that." msgstr "" -"Laiškas išsiųstas ${date} adresu ${to} tema „${subject}“ buvo apdorotas. " -"Siuntėjas nenori atskleisti daugiau detalių apie veiksmą." +"Su laišku, kuris ${date} buvo išsiųstas adresu ${to} ir kurio tema " +"„${subject}“, buvo atlikti tam tikri veiksmai. Siuntėjas nenori jums " +"atskleisti išsamesnės informacijos." #: 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 " "${date} to ${to} with subject \"${subject}\" failed. Reason is given in the " "Failure: header field below." msgstr "" -"Pranešimo apie laiško, išsiųsto ${date} adresu ${to} tema „${subject}“ " -"pristatymą generavimas nepavyko. Priežastis yra pateikta Nesėkmė: antraštės " -"lauke žemiau." +"Nepavyko sugeneruoti pranešimą apie laiško, kuris ${date} buvo išsiųstas " +"adresu ${to} ir kurio tema „${subject}“, pristatymą. Priežastis nurodyta " +"žemiau esančiame „Nesėkmė:“ antraštės lauke." #~ msgctxt "invalid time specified" #~ msgid "unknown" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmime-26.04.0/src/headerparsing.cpp new/kmime-26.04.1/src/headerparsing.cpp --- old/kmime-26.04.0/src/headerparsing.cpp 2026-04-09 15:41:53.000000000 +0200 +++ new/kmime-26.04.1/src/headerparsing.cpp 2026-05-03 05:52:33.000000000 +0200 @@ -93,7 +93,8 @@ // QByteArrayView maybeLanguage(languageStart, scursor - languageStart); // extract charset information (keep in mind: the size given to the // ctor is one off due to the \0 terminator): - QByteArrayView maybeCharset(charsetStart, (languageStart ? languageStart - 1 : scursor) - charsetStart); + // 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))); // // STEP 2:
