Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package perl-MIME-tools for openSUSE:Factory 
checked in at 2026-09-08 16:58:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-MIME-tools (Old)
 and      /work/SRC/openSUSE:Factory/.perl-MIME-tools.new.1265 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-MIME-tools"

Tue Sep  8 16:58:10 2026 rev:42 rq:1376319 version:5.518.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-MIME-tools/perl-MIME-tools.changes  
2026-03-11 20:53:00.468228160 +0100
+++ 
/work/SRC/openSUSE:Factory/.perl-MIME-tools.new.1265/perl-MIME-tools.changes    
    2026-09-08 17:01:40.145877049 +0200
@@ -1,0 +2,20 @@
+Thu Aug 27 16:34:46 UTC 2026 - Tina Müller <[email protected]>
+
+- updated to 5.518.0 (5.518)
+   see /usr/share/doc/packages/perl-MIME-tools/ChangeLog
+
+  5.518          2026-08-26  Dianne Skoll <[email protected]>
+       * VERSION 5.518 RELEASED
+       * Add tests for encoded "boundary=XXX" parameters and set
+         the ambiguous-parse flag if any are found.  Patch courtesy
+         of Dominik Csapak <[email protected]>
+         MIME::tools chooses to decode encoded boundary parameters.
+         MUA behaviors differ; Claws-Mail decodes them while Thunderbird
+         does not.
+       * Don't ignore invalid whitespace after "boundary=XXX" parameter.
+         Patch courtesy of Dominik Csapak <[email protected]>
+       * Ignore comments between tokens.  A header parameter can be
+         written foo(comment)=bar and it's the same as foo=bar.
+         Patch courtesy of Dominik Csapak <[email protected]>
+
+-------------------------------------------------------------------

Old:
----
  MIME-tools-5.517.tar.gz

New:
----
  MIME-tools-5.518.tar.gz

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

Other differences:
------------------
++++++ perl-MIME-tools.spec ++++++
--- /var/tmp/diff_new_pack.2u3MoY/_old  2026-09-08 17:01:41.096916802 +0200
+++ /var/tmp/diff_new_pack.2u3MoY/_new  2026-09-08 17:01:41.100916969 +0200
@@ -18,10 +18,10 @@
 
 %define cpan_name MIME-tools
 Name:           perl-MIME-tools
-Version:        5.517.0
+Version:        5.518.0
 Release:        0
-# 5.517 -> normalize -> 5.517.0
-%define cpan_version 5.517
+# 5.518 -> normalize -> 5.518.0
+%define cpan_version 5.518
 License:        Artistic-1.0 OR GPL-1.0-or-later
 Summary:        Tools to manipulate MIME messages
 URL:            https://metacpan.org/release/%{cpan_name}

++++++ MIME-tools-5.517.tar.gz -> MIME-tools-5.518.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/ChangeLog 
new/MIME-tools-5.518/ChangeLog
--- old/MIME-tools-5.517/ChangeLog      2026-02-11 03:51:22.000000000 +0100
+++ new/MIME-tools-5.518/ChangeLog      2026-08-26 18:30:59.000000000 +0200
@@ -1,3 +1,22 @@
+5.518    2026-08-26  Dianne Skoll <[email protected]>
+
+       * VERSION 5.518 RELEASED
+
+       * Add tests for encoded "boundary=XXX" parameters and set
+         the ambiguous-parse flag if any are found.  Patch courtesy
+         of Dominik Csapak <[email protected]>
+
+         MIME::tools chooses to decode encoded boundary parameters.
+         MUA behaviors differ; Claws-Mail decodes them while Thunderbird
+         does not.
+
+       * Don't ignore invalid whitespace after "boundary=XXX" parameter.
+         Patch courtesy of Dominik Csapak <[email protected]>
+
+       * Ignore comments between tokens.  A header parameter can be
+         written foo(comment)=bar and it's the same as foo=bar.
+         Patch courtesy of Dominik Csapak <[email protected]>
+
 5.517    2026-02-10  Dianne Skoll <[email protected]>
 
        * VERSION 5.517 RELEASED
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/MANIFEST 
new/MIME-tools-5.518/MANIFEST
--- old/MIME-tools-5.517/MANIFEST       2026-02-11 03:48:51.000000000 +0100
+++ new/MIME-tools-5.518/MANIFEST       2026-08-26 18:32:22.000000000 +0200
@@ -150,6 +150,7 @@
 testmsgs/bluedot-postcard.ref
 testmsgs/bluedot-simple.msg
 testmsgs/bluedot-simple.ref
+testmsgs/double-boundary-with-comment.msg
 testmsgs/double-boundary.msg
 testmsgs/double-content-disposition-param.msg
 testmsgs/double-content-disposition.msg
@@ -161,8 +162,8 @@
 testmsgs/dup-names.msg
 testmsgs/dup-names.ref
 testmsgs/empty-boundary.msg
-testmsgs/empty-quoted-boundary.msg
 testmsgs/empty-preamble.msg
+testmsgs/empty-quoted-boundary.msg
 testmsgs/frag.msg
 testmsgs/german-qp.msg
 testmsgs/german.msg
@@ -170,6 +171,8 @@
 testmsgs/hdr-fakeout-newmailtools-ref
 testmsgs/hdr-fakeout.msg
 testmsgs/hdr-fakeout.ref
+testmsgs/invalid-boundary.msg
+testmsgs/invalid-quoted-boundary.msg
 testmsgs/malformed-content-type-zip.msg
 testmsgs/multi-2evil.msg
 testmsgs/multi-2evil.ref
@@ -194,14 +197,17 @@
 testmsgs/multi-simple.ref
 testmsgs/multi-weirdspace.msg
 testmsgs/multi-weirdspace.ref
+testmsgs/qpboundary.msg
 testmsgs/re-fwd.msg
 testmsgs/re-fwd.ref
+testmsgs/rfc2231boundary.msg
 testmsgs/russian.msg
 testmsgs/russian.ref
 testmsgs/simple.msg
 testmsgs/simple.ref
 testmsgs/ticket-60931.msg
 testmsgs/triple-boundary-one-empty.msg
+testmsgs/unusual-space-in-boundary.msg
 testmsgs/utf8-bom-at-start.msg
 testmsgs/uu-junk-extracted.ref
 testmsgs/uu-junk-target.msg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/META.yml 
new/MIME-tools-5.518/META.yml
--- old/MIME-tools-5.517/META.yml       2026-02-11 03:51:36.000000000 +0100
+++ new/MIME-tools-5.518/META.yml       2026-08-26 18:25:15.000000000 +0200
@@ -37,4 +37,4 @@
   perl: 5.8.0
 resources:
   license: http://dev.perl.org/licenses/
-version: 5.517
+version: 5.518
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/MYMETA.json 
new/MIME-tools-5.518/MYMETA.json
--- old/MIME-tools-5.517/MYMETA.json    2026-02-11 03:52:31.000000000 +0100
+++ new/MIME-tools-5.518/MYMETA.json    2026-08-26 18:32:41.000000000 +0200
@@ -58,7 +58,7 @@
          "http://dev.perl.org/licenses/";
       ]
    },
-   "version" : "5.517",
+   "version" : "5.518",
    "x_module_name" : "MIME::Tools",
    "x_serialization_backend" : "JSON::PP version 4.16"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/MYMETA.yml 
new/MIME-tools-5.518/MYMETA.yml
--- old/MIME-tools-5.517/MYMETA.yml     2026-02-11 03:52:31.000000000 +0100
+++ new/MIME-tools-5.518/MYMETA.yml     2026-08-26 18:32:41.000000000 +0200
@@ -36,6 +36,6 @@
   perl: '5.008'
 resources:
   license: http://dev.perl.org/licenses/
-version: '5.517'
+version: '5.518'
 x_module_name: MIME::Tools
 x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/lib/MIME/Body.pm 
new/MIME-tools-5.518/lib/MIME/Body.pm
--- old/MIME-tools-5.517/lib/MIME/Body.pm       2026-02-11 03:51:36.000000000 
+0100
+++ new/MIME-tools-5.518/lib/MIME/Body.pm       2026-08-26 18:25:15.000000000 
+0200
@@ -141,7 +141,7 @@
 use IO::File;
 
 ### The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "5.517";
+$VERSION = "5.518";
 
 
 #------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/lib/MIME/Decoder/Base64.pm 
new/MIME-tools-5.518/lib/MIME/Decoder/Base64.pm
--- old/MIME-tools-5.517/lib/MIME/Decoder/Base64.pm     2026-02-11 
03:51:36.000000000 +0100
+++ new/MIME-tools-5.518/lib/MIME/Decoder/Base64.pm     2026-08-26 
18:25:15.000000000 +0200
@@ -57,7 +57,7 @@
 @ISA = qw(MIME::Decoder);
 
 ### The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "5.517";
+$VERSION = "5.518";
 
 ### How many bytes to encode at a time (must be a multiple of 3)
 my $EncodeChunkLength = 120 * 57;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/lib/MIME/Decoder/BinHex.pm 
new/MIME-tools-5.518/lib/MIME/Decoder/BinHex.pm
--- old/MIME-tools-5.517/lib/MIME/Decoder/BinHex.pm     2026-02-11 
03:51:36.000000000 +0100
+++ new/MIME-tools-5.518/lib/MIME/Decoder/BinHex.pm     2026-08-26 
18:25:15.000000000 +0200
@@ -47,7 +47,7 @@
 @ISA = qw(MIME::Decoder);
 
 # The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "5.517";
+$VERSION = "5.518";
 
 
 #------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/lib/MIME/Decoder/Binary.pm 
new/MIME-tools-5.518/lib/MIME/Decoder/Binary.pm
--- old/MIME-tools-5.517/lib/MIME/Decoder/Binary.pm     2026-02-11 
03:51:36.000000000 +0100
+++ new/MIME-tools-5.518/lib/MIME/Decoder/Binary.pm     2026-08-26 
18:25:15.000000000 +0200
@@ -47,7 +47,7 @@
 @ISA = qw(MIME::Decoder);
 
 ### The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "5.517";
+$VERSION = "5.518";
 
 ### Buffer length:
 my $BUFLEN = 8192;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/lib/MIME/Decoder/Gzip64.pm 
new/MIME-tools-5.518/lib/MIME/Decoder/Gzip64.pm
--- old/MIME-tools-5.517/lib/MIME/Decoder/Gzip64.pm     2026-02-11 
03:51:36.000000000 +0100
+++ new/MIME-tools-5.518/lib/MIME/Decoder/Gzip64.pm     2026-08-26 
18:25:15.000000000 +0200
@@ -61,7 +61,7 @@
 @ISA = qw(MIME::Decoder::Base64);
 
 # The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "5.517";
+$VERSION = "5.518";
 
 # How to compress stdin to stdout:
 $GZIP   = "gzip -c";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/lib/MIME/Decoder/NBit.pm 
new/MIME-tools-5.518/lib/MIME/Decoder/NBit.pm
--- old/MIME-tools-5.517/lib/MIME/Decoder/NBit.pm       2026-02-11 
03:51:36.000000000 +0100
+++ new/MIME-tools-5.518/lib/MIME/Decoder/NBit.pm       2026-08-26 
18:25:15.000000000 +0200
@@ -98,7 +98,7 @@
 @ISA = qw(MIME::Decoder);
 
 ### The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "5.517";
+$VERSION = "5.518";
 
 ### How many bytes to decode at a time?
 my $DecodeChunkLength = 8 * 1024;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/lib/MIME/Decoder/QuotedPrint.pm 
new/MIME-tools-5.518/lib/MIME/Decoder/QuotedPrint.pm
--- old/MIME-tools-5.517/lib/MIME/Decoder/QuotedPrint.pm        2026-02-11 
03:51:36.000000000 +0100
+++ new/MIME-tools-5.518/lib/MIME/Decoder/QuotedPrint.pm        2026-08-26 
18:25:15.000000000 +0200
@@ -58,7 +58,7 @@
 @ISA = qw(MIME::Decoder);
 
 # The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "5.517";
+$VERSION = "5.518";
 
 #------------------------------
 # If we have MIME::QuotedPrint 3.03 or later, use the three-argument
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/lib/MIME/Decoder/UU.pm 
new/MIME-tools-5.518/lib/MIME/Decoder/UU.pm
--- old/MIME-tools-5.517/lib/MIME/Decoder/UU.pm 2026-02-11 03:51:36.000000000 
+0100
+++ new/MIME-tools-5.518/lib/MIME/Decoder/UU.pm 2026-08-26 18:25:15.000000000 
+0200
@@ -48,7 +48,7 @@
 @ISA = qw(MIME::Decoder);
 
 # The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "5.517";
+$VERSION = "5.518";
 
 
 #------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/lib/MIME/Decoder.pm 
new/MIME-tools-5.518/lib/MIME/Decoder.pm
--- old/MIME-tools-5.517/lib/MIME/Decoder.pm    2026-02-11 03:51:36.000000000 
+0100
+++ new/MIME-tools-5.518/lib/MIME/Decoder.pm    2026-08-26 18:25:15.000000000 
+0200
@@ -126,7 +126,7 @@
 );
 
 ### The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "5.517";
+$VERSION = "5.518";
 
 ### Me:
 my $ME = 'MIME::Decoder';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/lib/MIME/Entity.pm 
new/MIME-tools-5.518/lib/MIME/Entity.pm
--- old/MIME-tools-5.517/lib/MIME/Entity.pm     2026-02-11 03:51:36.000000000 
+0100
+++ new/MIME-tools-5.518/lib/MIME/Entity.pm     2026-08-26 18:25:15.000000000 
+0200
@@ -255,7 +255,7 @@
 #------------------------------
 
 ### The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "5.517";
+$VERSION = "5.518";
 
 ### Boundary counter:
 my $BCount = 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/lib/MIME/Field/ConTraEnc.pm 
new/MIME-tools-5.518/lib/MIME/Field/ConTraEnc.pm
--- old/MIME-tools-5.517/lib/MIME/Field/ConTraEnc.pm    2026-02-11 
03:51:36.000000000 +0100
+++ new/MIME-tools-5.518/lib/MIME/Field/ConTraEnc.pm    2026-08-26 
18:25:15.000000000 +0200
@@ -47,7 +47,7 @@
 @ISA = qw(MIME::Field::ParamVal);
 
 # The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "5.517";
+$VERSION = "5.518";
 
 # Install it:
 bless([])->register('Content-transfer-encoding');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/lib/MIME/Field/ContDisp.pm 
new/MIME-tools-5.518/lib/MIME/Field/ContDisp.pm
--- old/MIME-tools-5.517/lib/MIME/Field/ContDisp.pm     2026-02-11 
03:51:36.000000000 +0100
+++ new/MIME-tools-5.518/lib/MIME/Field/ContDisp.pm     2026-08-26 
18:25:15.000000000 +0200
@@ -48,7 +48,7 @@
 @ISA = qw(MIME::Field::ParamVal);
 
 # The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "5.517";
+$VERSION = "5.518";
 
 # Install it:
 bless([])->register('Content-disposition');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/lib/MIME/Field/ContType.pm 
new/MIME-tools-5.518/lib/MIME/Field/ContType.pm
--- old/MIME-tools-5.517/lib/MIME/Field/ContType.pm     2026-02-11 
03:51:36.000000000 +0100
+++ new/MIME-tools-5.518/lib/MIME/Field/ContType.pm     2026-08-26 
18:25:15.000000000 +0200
@@ -58,12 +58,13 @@
 require 5.001;
 use strict;
 use MIME::Field::ParamVal;
+use MIME::Words qw(decode_mimewords);
 use vars qw($VERSION @ISA);
 
 @ISA = qw(MIME::Field::ParamVal);
 
 # The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "5.517";
+$VERSION = "5.518";
 
 # Install it:
 bless([])->register('Content-type');
@@ -113,8 +114,9 @@
 sub boundary {
     my $value = shift->param('boundary', @_);
     defined($value) || return '';
-    $value =~ s/\s+$//;                  # kill trailing white, per RFC 2046
-    $value;
+    $value = decode_mimewords($value);
+    $value =~ s/\s+$//;                  # kill trailing whitespace, per RFC 
2046
+    return $value;
 }
 
 #------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/lib/MIME/Field/ParamVal.pm 
new/MIME-tools-5.518/lib/MIME/Field/ParamVal.pm
--- old/MIME-tools-5.517/lib/MIME/Field/ParamVal.pm     2026-02-11 
03:51:36.000000000 +0100
+++ new/MIME-tools-5.518/lib/MIME/Field/ParamVal.pm     2026-08-26 
18:25:15.000000000 +0200
@@ -80,7 +80,7 @@
 #------------------------------
 
 # The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "5.517";
+$VERSION = "5.518";
 
 
 #------------------------------
@@ -90,7 +90,7 @@
 #------------------------------
 
 # Pattern to match parameter names (like fieldnames, but = not allowed):
-my $PARAMNAME = '[^\x00-\x1f\x80-\xff :=]+';
+my $PARAMNAME = '[^\x00-\x1f\x80-\xff :=]+?';
 
 # Pattern to match the first value on the line:
 my $FIRST    = '[^\s\;\x00-\x1f\x80-\xff]*';
@@ -110,13 +110,19 @@
 # Encoded token:
 my $ENCTOKEN = "=\\?[^?]*\\?[A-Za-z]\\?[^?]+\\?=";
 
+# pattern to match comments
+my $COMMENT  = '\([^\)]*\)';
+
 # Pattern to match spaces or comments:
-my $SPCZ     = '(?:\s|\([^\)]*\))*';
+my $SPCZ     = '(?:\s|' . $COMMENT . ')*';
 
 # Pattern to match non-semicolon as fallback for broken MIME
 # produced by some viruses
 my $BADTOKEN = '[^;]+';
 
+# Pattern to match whitespace allowed in header
+my $WSP      = '[\t\ ]';
+
 #------------------------------
 #
 # Class init...
@@ -237,13 +243,25 @@
     $raw =~ m/\A$SPCZ($FIRST)$SPCZ/og or return {};    # nada!
     $params{'_'} = $1;
 
+    my $boundary_leftover = 0;
+    my $saw_semicolon= 0;
+
     # Extract subsequent parameters.
     # No, we can't just "split" on semicolons: they're legal in quoted strings!
     while (1) {                     # keep chopping away until done...
-       $raw =~ m/\G[^;]*(\;$SPCZ)+/og or last;             # skip leading 
separator
-       $raw =~ m/\G($PARAMNAME)\s*=\s*/og or last;      # give up if not a 
param
+       $saw_semicolon = 0;
+       $raw =~ m/\G([^;]*)(\;$SPCZ)+/ogc or last;             # skip leading 
separator
+       my $leftover = $1;
+       $saw_semicolon = 1;
+
+       # the previous param was 'boundary' and we had leftover data
+       if (defined($leftover) && length($leftover) > 0 && defined($param) && 
$param eq 'boundary') {
+           $boundary_leftover = 1;
+       }
+
+       $raw =~ m/\G($PARAMNAME)($COMMENT|$WSP)*=($COMMENT|$WSP)*/ogc or last;  
    # give up if not a param
        $param = lc($1);
-       $raw =~ m/\G(?:$QUOTED_STRING|($ENCTOKEN)|($TOKEN)|($BADTOKEN)|())/g or 
last;
+       $raw =~ m/\G(?:$QUOTED_STRING|($ENCTOKEN)|($TOKEN)|($BADTOKEN)|())/gc 
or last;
        my ($qstr, $enctoken, $token, $badtoken, $empty_value) = ($1, $2, $3, 
$4, $5);
        if (defined($qstr)) {
             # unescape
@@ -251,23 +269,36 @@
        }
        if (defined($badtoken)) {
            # Strip leading/trailing whitespace from badtoken
-           $badtoken =~ s/^\s+//;
-           $badtoken =~ s/\s+\z//;
+           $badtoken =~ s/^$WSP+//;
+           $badtoken =~ s/$WSP+\z//;
 
            # Only keep token parameters in badtoken;
            # cut it off at the first non-token char.  CPAN RT #105455
+           my $old_badtoken = $badtoken;
            $badtoken =~ /^($TOKEN)*/;
            $badtoken = $1;
            if (defined($badtoken)) {
                    # Cut it off at first whitespace too
                    $badtoken =~ s/\s.*//;
            }
+
+           # there was a leftover after the last valid token
+           if ($param eq 'boundary') {
+               $boundary_leftover = 1 if defined($badtoken) && $badtoken ne 
$old_badtoken;
+               $boundary_leftover = 1 if !defined($badtoken) && 
length($old_badtoken) > 0;
+           }
        }
        $val = defined($qstr) ? $qstr :
            (defined($enctoken) ? $enctoken :
             (defined($badtoken) ? $badtoken :
               (defined($token) ? $token : $empty_value)));
 
+        # Mark parse ambiguous if boundary parameter is encoded
+        if ($param eq 'boundary') {
+                if (defined($val) && $val =~ /^=\?.*\?[A-Z]\?.*\?=$/i) {
+                        $params{'@boundary_ambiguous'} = 1;
+                }
+        }
        # Do RFC 2231 processing
        # Pick out the parts of the parameter
        if ($param =~ /\*/ &&
@@ -298,6 +329,14 @@
         }
     }
 
+    # the last field was 'boundary' and there were non separator characters 
left
+    my $pos = pos($raw);
+    if (($param // '') eq 'boundary' && defined($pos) && $pos < length($raw) 
&& !$saw_semicolon) {
+       $boundary_leftover = 1;
+    }
+
+    my $boundary_is_rfc2231 = 0;
+
     # Extract reconstructed parameters
     foreach $param (keys %rfc2231params) {
        # If we got any rfc-2231 parameters, then
@@ -310,6 +349,9 @@
            $params{$param} .= $rfc2231params{$param}{$part};
        }
        if ($rfc2231encoding_is_used{$param}) {
+           # there is no reason for the boundary to be encoded this way, since
+           # non-ascii characters are not allowed later anyway, so mark this
+           $boundary_is_rfc2231 = 1 if $param eq 'boundary';
            my($enc, $lang, $val) = rfc2231decode($params{$param});
            if (defined $enc) {
                # re-encode as QP, preserving charset and language info
@@ -340,6 +382,11 @@
     if (%empty_params) {
         $params{'@empty_parameters'} = [ sort(keys(%empty_params)) ];
     }
+
+    if ($boundary_is_rfc2231 || $boundary_leftover) {
+       $params{'@boundary_ambiguous'} = 1;
+    }
+
     # Done:
     \%params;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/lib/MIME/Head.pm 
new/MIME-tools-5.518/lib/MIME/Head.pm
--- old/MIME-tools-5.517/lib/MIME/Head.pm       2026-02-11 03:51:36.000000000 
+0100
+++ new/MIME-tools-5.518/lib/MIME/Head.pm       2026-08-26 18:25:15.000000000 
+0200
@@ -159,7 +159,7 @@
 #------------------------------
 
 ### The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "5.517";
+$VERSION = "5.518";
 
 ### Sanity (we put this test after our own version, for CPAN::):
 use Mail::Header 1.06 ();
@@ -205,6 +205,8 @@
 A Content-Type or Content-Disposition header contains a repeated
 parameter.
 
+A Content-Type header contains a boundary that is ambiguous.
+
 =back
 
 Messages with ambiguous content should be treated as a security risk.
@@ -229,6 +231,11 @@
             return 1;
         }
     }
+
+    if ($self->mime_attr('content-type.@boundary_ambiguous')) {
+        return 1;
+    }
+
     return 0;
 }
 #------------------------------
@@ -869,7 +876,10 @@
 sub multipart_boundary {
     my $self = shift;
     my $value =  $self->mime_attr('content-type.boundary');
-    (!defined($value)) ? undef : $value;
+    return undef unless defined($value);
+    $value = decode_mimewords($value);
+    $value =~ s/\s+$//;                  # kill trailing whitespace, per RFC 
2046
+    return $value;
 }
 
 #------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/lib/MIME/Parser.pm 
new/MIME-tools-5.518/lib/MIME/Parser.pm
--- old/MIME-tools-5.517/lib/MIME/Parser.pm     2026-02-11 03:51:36.000000000 
+0100
+++ new/MIME-tools-5.518/lib/MIME/Parser.pm     2026-08-26 18:25:15.000000000 
+0200
@@ -153,7 +153,7 @@
 #------------------------------
 
 ### The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "5.517";
+$VERSION = "5.518";
 
 ### How to catenate:
 $CAT = '/bin/cat';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/lib/MIME/Tools.pm 
new/MIME-tools-5.518/lib/MIME/Tools.pm
--- old/MIME-tools-5.517/lib/MIME/Tools.pm      2026-02-11 03:51:33.000000000 
+0100
+++ new/MIME-tools-5.518/lib/MIME/Tools.pm      2026-08-26 18:25:13.000000000 
+0200
@@ -28,7 +28,7 @@
 Exporter::export_ok_tags('config', 'msgs', 'msgtypes', 'utils');
 
 # The TOOLKIT version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "5.517";
+$VERSION = "5.518";
 
 # Configuration (do NOT alter this directly)...
 # All legal CONFIG vars *must* be in here, even if only to be set to undef:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/lib/MIME/Words.pm 
new/MIME-tools-5.518/lib/MIME/Words.pm
--- old/MIME-tools-5.517/lib/MIME/Words.pm      2026-02-11 03:51:36.000000000 
+0100
+++ new/MIME-tools-5.518/lib/MIME/Words.pm      2026-08-26 18:25:15.000000000 
+0200
@@ -94,7 +94,7 @@
 #------------------------------
 
 ### The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "5.517";
+$VERSION = "5.518";
 
 ### Nonprintables (controls + x7F + 8bit):
 my $NONPRINT = "\\x00-\\x1F\\x7F-\\xFF";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/t/ambiguous-parse.t 
new/MIME-tools-5.518/t/ambiguous-parse.t
--- old/MIME-tools-5.517/t/ambiguous-parse.t    2026-02-09 17:07:40.000000000 
+0100
+++ new/MIME-tools-5.518/t/ambiguous-parse.t    2026-08-25 16:16:44.000000000 
+0200
@@ -2,7 +2,7 @@
 use strict;
 use warnings;
 use Test::Deep;
-use Test::More tests => 32;
+use Test::More tests => 53;
 
 use MIME::Entity;
 use MIME::Parser;
@@ -76,3 +76,49 @@
 ok($parser->ambiguous_content(), 'Ambiguous content was detected in message 
with "" boundary parameter');
 ok($entity->ambiguous_content(), 'Entity method matches parser method');
 
+$entity = $parser->parse_open('testmsgs/rfc2231boundary.msg');
+$ans = $entity->head->mime_attr('content-type.@boundary_ambiguous');
+ok(defined($ans), 'No ambiguous boundary found');
+ok($parser->ambiguous_content(), 'Ambiguous content was detected in message 
with rfc2231 boundary parameter');
+# Ensure that we actually decoded the boundary
+is ($entity->head->multipart_boundary, 'X', 'Boundary parameter was decoded');
+
+# And ensure we parsed the message using the decoded boundary
+my @parts = $entity->parts;
+is (scalar(@parts), 2, 'Got two parts');
+is ($parts[0]->head->mime_type, 'text/plain', 'First part is text/plain');
+is ($parts[1]->head->mime_type, 'application/octet-stream', 'Second part is 
application/octet-stream');
+
+$entity = $parser->parse_open('testmsgs/qpboundary.msg');
+$ans = $entity->head->mime_attr('content-type.@boundary_ambiguous');
+ok(defined($ans), 'No ambiguous boundary found');
+ok($parser->ambiguous_content(), 'Ambiguous content was detected in message 
with quoted-printable encoded boundary parameter');
+# Ensure that we actually decoded the boundary
+is ($entity->head->multipart_boundary, 'X', 'Boundary parameter was decoded');
+
+# And ensure we parsed the message using the decoded boundary
+@parts = $entity->parts;
+is (scalar(@parts), 2, 'Got two parts');
+is ($parts[0]->head->mime_type, 'text/plain', 'First part is text/plain');
+is ($parts[1]->head->mime_type, 'application/octet-stream', 'Second part is 
application/octet-stream');
+
+$entity = $parser->parse_open('testmsgs/invalid-boundary.msg');
+$ans = $entity->head->mime_attr('content-type.@boundary_ambiguous');
+ok(defined($ans), 'No ambiguous boundary found');
+ok($parser->ambiguous_content(), 'Ambiguous content was detected in message 
with non rfc 2045 conform boundary parameter');
+
+$entity = $parser->parse_open('testmsgs/invalid-quoted-boundary.msg');
+$ans = $entity->head->mime_attr('content-type.@boundary_ambiguous');
+ok(defined($ans), 'No ambiguous boundary found');
+ok($parser->ambiguous_content(), 'Ambiguous content was detected in message 
with non rfc 2045 conform boundary parameter');
+
+$entity = $parser->parse_open('testmsgs/unusual-space-in-boundary.msg');
+$ans = $entity->head->mime_attr('content-type.@boundary_ambiguous');
+ok(defined($ans), 'No ambiguous boundary found');
+ok($parser->ambiguous_content(), 'Ambiguous content was detected in message 
with unusual white space in boundary parameter');
+
+$entity = $parser->parse_open('testmsgs/double-boundary-with-comment.msg');
+$ans = $entity->head->mime_attr('content-type.@duplicate_parameters');
+ok(defined($ans), 'No duplicate parameters');
+cmp_deeply($ans, ['boundary'], 'Duplicate "boundary" parameter was detected in 
bad message');
+ok($parser->ambiguous_content(), 'Ambiguous content was detected in message 
with duplicate boundary parameters, one of them with comment');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/t/ticket-119568.t 
new/MIME-tools-5.518/t/ticket-119568.t
--- old/MIME-tools-5.517/t/ticket-119568.t      2026-02-11 03:52:04.000000000 
+0100
+++ new/MIME-tools-5.518/t/ticket-119568.t      2026-08-26 18:26:19.000000000 
+0200
@@ -13,7 +13,7 @@
                            Data => ["Line 1\n", "Line 2\n"],);
 
 my $str = $e->as_string();
-is ($str, "Content-Type: text/plain\nContent-Disposition: 
inline\nContent-Transfer-Encoding: binary\nMIME-Version: 1.0\nX-Mailer: 
MIME-tools 5.517 (Entity 5.517)\nFrom: dianne\@skoll.ca\nTo: 
dfs2\@roaringpenguin.com\nSubject: End-of-line test\n\nLine 1\nLine 2\n", 'Got 
expected line endings');
+is ($str, "Content-Type: text/plain\nContent-Disposition: 
inline\nContent-Transfer-Encoding: binary\nMIME-Version: 1.0\nX-Mailer: 
MIME-tools 5.518 (Entity 5.518)\nFrom: dianne\@skoll.ca\nTo: 
dfs2\@roaringpenguin.com\nSubject: End-of-line test\n\nLine 1\nLine 2\n", 'Got 
expected line endings');
 
 my $delim = "\r\n";
 $MIME::Entity::BOUNDARY_DELIMITER = $delim;
@@ -24,7 +24,7 @@
 
 $str = $e->as_string();
 
-is ($str, "Content-Type: text/plain${delim}Content-Disposition: 
inline${delim}Content-Transfer-Encoding: binary${delim}MIME-Version: 
1.0${delim}X-Mailer: MIME-tools 5.517 (Entity 5.517)${delim}From: 
dianne\@skoll.ca${delim}To: dfs2\@roaringpenguin.com${delim}Subject: 
End-of-line test${delim}${delim}Line 1${delim}Line 2${delim}", 'Got expected 
line endings');
+is ($str, "Content-Type: text/plain${delim}Content-Disposition: 
inline${delim}Content-Transfer-Encoding: binary${delim}MIME-Version: 
1.0${delim}X-Mailer: MIME-tools 5.518 (Entity 5.518)${delim}From: 
dianne\@skoll.ca${delim}To: dfs2\@roaringpenguin.com${delim}Subject: 
End-of-line test${delim}${delim}Line 1${delim}Line 2${delim}", 'Got expected 
line endings');
 
 $e->attach(Data => ["More Text$delim"], Type => "text/plain");
 
@@ -35,7 +35,7 @@
 $e->attach(Data => ["Text$delim"], Type => "text/plain");
 $e->attach(Data => ["More Text$delim"], Type => "text/plain");
 $str = $e->as_string();
-is ($str, "Content-Type: multipart/mixed; 
boundary=\"foo\"${delim}Content-Transfer-Encoding: binary${delim}MIME-Version: 
1.0${delim}X-Mailer: MIME-tools 5.517 (Entity 5.517)${delim}From: 
dianne\@skoll.ca${delim}To: dfs2\@roaringpenguin.com${delim}Subject: 
End-of-line test${delim}${delim}This is a multi-part message in MIME 
format...${delim}${delim}--foo${delim}Content-Type: 
text/plain${delim}Content-Disposition: inline${delim}Content-Transfer-Encoding: 
binary${delim}${delim}Text${delim}${delim}--foo${delim}Content-Type: 
text/plain${delim}Content-Disposition: inline${delim}Content-Transfer-Encoding: 
binary${delim}${delim}More Text${delim}${delim}--foo--${delim}", 'Got expected 
line endings');
+is ($str, "Content-Type: multipart/mixed; 
boundary=\"foo\"${delim}Content-Transfer-Encoding: binary${delim}MIME-Version: 
1.0${delim}X-Mailer: MIME-tools 5.518 (Entity 5.518)${delim}From: 
dianne\@skoll.ca${delim}To: dfs2\@roaringpenguin.com${delim}Subject: 
End-of-line test${delim}${delim}This is a multi-part message in MIME 
format...${delim}${delim}--foo${delim}Content-Type: 
text/plain${delim}Content-Disposition: inline${delim}Content-Transfer-Encoding: 
binary${delim}${delim}Text${delim}${delim}--foo${delim}Content-Type: 
text/plain${delim}Content-Disposition: inline${delim}Content-Transfer-Encoding: 
binary${delim}${delim}More Text${delim}${delim}--foo--${delim}", 'Got expected 
line endings');
 
 $e = MIME::Entity->build(From => '[email protected]',
                         To   => '[email protected]',
@@ -45,5 +45,5 @@
 $e->attach(Data => ["More Text\n", 'LongLine' x 120], Type => "text/plain", 
Encoding => 'Base64');
 $str = $e->as_string();
 
-is ($str, "Content-Type: multipart/mixed; 
boundary=\"foo\"${delim}Content-Transfer-Encoding: binary${delim}MIME-Version: 
1.0${delim}X-Mailer: MIME-tools 5.517 (Entity 5.517)${delim}From: 
dianne\@skoll.ca${delim}To: dfs2\@roaringpenguin.com${delim}Subject: 
End-of-line test${delim}${delim}This is a multi-part message in MIME 
format...${delim}${delim}--foo${delim}Content-Type: 
text/plain${delim}Content-Disposition: inline${delim}Content-Transfer-Encoding: 
Base64${delim}${delim}VGV4dAo=${delim}${delim}--foo${delim}Content-Type: 
text/plain${delim}Content-Disposition: inline${delim}Content-Transfer-Encoding: 
Base64${delim}${delim}TW9yZSBUZXh0CkxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGlu${delim}ZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5l${delim}TG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVM${delim}b25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxv${delim}bmdMaW5lTG9uZ0xpbmVMb25nTGluZ
 
UxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9u${delim}Z0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25n${delim}TGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdM${delim}aW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xp${delim}bmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGlu${delim}ZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5l${delim}TG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVM${delim}b25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxv${delim}bmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9u${delim}Z0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25n${delim}TGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdM${delim}aW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xp${delim}bmVMb25nTGluZUxvbm
 
dMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGlu${delim}ZQ==${delim}${delim}--foo--${delim}",
 'Got expected line endings for Base64 encoding');
+is ($str, "Content-Type: multipart/mixed; 
boundary=\"foo\"${delim}Content-Transfer-Encoding: binary${delim}MIME-Version: 
1.0${delim}X-Mailer: MIME-tools 5.518 (Entity 5.518)${delim}From: 
dianne\@skoll.ca${delim}To: dfs2\@roaringpenguin.com${delim}Subject: 
End-of-line test${delim}${delim}This is a multi-part message in MIME 
format...${delim}${delim}--foo${delim}Content-Type: 
text/plain${delim}Content-Disposition: inline${delim}Content-Transfer-Encoding: 
Base64${delim}${delim}VGV4dAo=${delim}${delim}--foo${delim}Content-Type: 
text/plain${delim}Content-Disposition: inline${delim}Content-Transfer-Encoding: 
Base64${delim}${delim}TW9yZSBUZXh0CkxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGlu${delim}ZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5l${delim}TG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVM${delim}b25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxv${delim}bmdMaW5lTG9uZ0xpbmVMb25nTGluZ
 
UxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9u${delim}Z0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25n${delim}TGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdM${delim}aW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xp${delim}bmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGlu${delim}ZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5l${delim}TG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVM${delim}b25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxv${delim}bmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9u${delim}Z0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25n${delim}TGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdM${delim}aW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xp${delim}bmVMb25nTGluZUxvbm
 
dMaW5lTG9uZ0xpbmVMb25nTGluZUxvbmdMaW5lTG9uZ0xpbmVMb25nTGlu${delim}ZQ==${delim}${delim}--foo--${delim}",
 'Got expected line endings for Base64 encoding');
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/MIME-tools-5.517/testmsgs/double-boundary-with-comment.msg 
new/MIME-tools-5.518/testmsgs/double-boundary-with-comment.msg
--- old/MIME-tools-5.517/testmsgs/double-boundary-with-comment.msg      
1970-01-01 01:00:00.000000000 +0100
+++ new/MIME-tools-5.518/testmsgs/double-boundary-with-comment.msg      
2026-08-26 15:59:13.000000000 +0200
@@ -0,0 +1,19 @@
+From: Test <[email protected]>
+To: Test <[email protected]>
+Subject: Double boundary with comment
+MIME-Version: 1.0
+Content-Type: multipart/mixed; boundary(comment)=X; boundary=XY
+
+--XY
+Content-Type: text/plain
+
+Whatever
+
+--XY
+Content-Type: application/octet-stream
+Content-Transfer-Encoding: base64
+Content-Disposition: attachment; name="wookie.exe"
+
+Z290Y2hhCg==
+
+--XY=--
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/testmsgs/invalid-boundary.msg 
new/MIME-tools-5.518/testmsgs/invalid-boundary.msg
--- old/MIME-tools-5.517/testmsgs/invalid-boundary.msg  1970-01-01 
01:00:00.000000000 +0100
+++ new/MIME-tools-5.518/testmsgs/invalid-boundary.msg  2026-08-26 
15:59:39.000000000 +0200
@@ -0,0 +1,19 @@
+From: Test <[email protected]>
+To: Test <[email protected]>
+Subject: Invalid boundary
+MIME-Version: 1.0
+Content-Type: multipart/mixed; boundary=FOO=
+
+--FOO=
+Content-Type: text/plain
+
+Whatever
+
+--FOO=
+Content-Type: application/octet-stream
+Content-Transfer-Encoding: base64
+Content-Disposition: attachment; name="wookie.exe"
+
+Z290Y2hhCg==
+
+--FOO=--
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/MIME-tools-5.517/testmsgs/invalid-quoted-boundary.msg 
new/MIME-tools-5.518/testmsgs/invalid-quoted-boundary.msg
--- old/MIME-tools-5.517/testmsgs/invalid-quoted-boundary.msg   1970-01-01 
01:00:00.000000000 +0100
+++ new/MIME-tools-5.518/testmsgs/invalid-quoted-boundary.msg   2026-08-26 
15:59:54.000000000 +0200
@@ -0,0 +1,19 @@
+From: Test <[email protected]>
+To: Test <[email protected]>
+Subject: Invalid quoted boundary
+MIME-Version: 1.0
+Content-Type: multipart/mixed; boundary=A"B
+
+--B
+Content-Type: text/plain
+
+Whatever
+
+--B
+Content-Type: application/octet-stream
+Content-Transfer-Encoding: base64
+Content-Disposition: attachment; name="wookie.exe"
+
+Z290Y2hhCg==
+
+--B--
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/testmsgs/qpboundary.msg 
new/MIME-tools-5.518/testmsgs/qpboundary.msg
--- old/MIME-tools-5.517/testmsgs/qpboundary.msg        1970-01-01 
01:00:00.000000000 +0100
+++ new/MIME-tools-5.518/testmsgs/qpboundary.msg        2026-08-26 
15:58:58.000000000 +0200
@@ -0,0 +1,19 @@
+From: Test <[email protected]>
+To: Test <[email protected]>
+Subject: Quoted-Printable encoded boundary.
+MIME-Version: 1.0
+Content-Type: multipart/mixed; boundary="=?US-ASCII?Q?X?="
+
+--X
+Content-Type: text/plain
+
+Whatever
+
+--X
+Content-Type: application/octet-stream
+Content-Transfer-Encoding: base64
+Content-Disposition: attachment; name="wookie.exe"
+
+Z290Y2hhCg==
+
+--X--
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIME-tools-5.517/testmsgs/rfc2231boundary.msg 
new/MIME-tools-5.518/testmsgs/rfc2231boundary.msg
--- old/MIME-tools-5.517/testmsgs/rfc2231boundary.msg   1970-01-01 
01:00:00.000000000 +0100
+++ new/MIME-tools-5.518/testmsgs/rfc2231boundary.msg   2026-08-26 
16:00:05.000000000 +0200
@@ -0,0 +1,19 @@
+From: Test <[email protected]>
+To: Test <[email protected]>
+Subject: RFC2231-encoded boundary
+MIME-Version: 1.0
+Content-Type: multipart/mixed; boundary*=us-ascii'en-us'X;
+
+--X
+Content-Type: text/plain
+
+Whatever
+
+--X
+Content-Type: application/octet-stream
+Content-Transfer-Encoding: base64
+Content-Disposition: attachment; name="wookie.exe"
+
+Z290Y2hhCg==
+
+--X--
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/MIME-tools-5.517/testmsgs/unusual-space-in-boundary.msg 
new/MIME-tools-5.518/testmsgs/unusual-space-in-boundary.msg
--- old/MIME-tools-5.517/testmsgs/unusual-space-in-boundary.msg 1970-01-01 
01:00:00.000000000 +0100
+++ new/MIME-tools-5.518/testmsgs/unusual-space-in-boundary.msg 2026-08-26 
15:59:26.000000000 +0200
@@ -0,0 +1,19 @@
+From: Test <[email protected]>
+To: Test <[email protected]>
+Subject: Unusual space in boundary
+MIME-Version: 1.0
+Content-Type: multipart/mixed; boundary=FOO
+
+--FOO
+Content-Type: text/plain
+
+Whatever
+
+--FOO
+Content-Type: application/octet-stream
+Content-Transfer-Encoding: base64
+Content-Disposition: attachment; name="wookie.exe"
+
+Z290Y2hhCg==
+
+--FOO=--

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.2u3MoY/_old  2026-09-08 17:01:41.447931474 +0200
+++ /var/tmp/diff_new_pack.2u3MoY/_new  2026-09-08 17:01:41.459931975 +0200
@@ -1,6 +1,6 @@
-mtime: 1770790868
-commit: 6ac59af313a37f1716fb79b52300c00a7eeeeec751ec156999efadf286485620
-url: https://src.opensuse.org/perl/perl-MIME-tools.git
-revision: 6ac59af313a37f1716fb79b52300c00a7eeeeec751ec156999efadf286485620
+mtime: 1787848486
+commit: 034418b05d900282925cb365c8fe30849b46fb7f8575507457ad261129549567
+url: https://src.opensuse.org/perl/perl-MIME-tools
+revision: 034418b05d900282925cb365c8fe30849b46fb7f8575507457ad261129549567
 projectscmsync: https://src.opensuse.org/perl/_ObsPrj
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-08-27 18:34:46.000000000 +0200
@@ -0,0 +1 @@
+.osc

Reply via email to