Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package perl-HTTP-Message for 
openSUSE:Factory checked in at 2026-08-22 21:34:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-HTTP-Message (Old)
 and      /work/SRC/openSUSE:Factory/.perl-HTTP-Message.new.1258 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-HTTP-Message"

Sat Aug 22 21:34:41 2026 rev:43 rq:1372835 version:7.40.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-HTTP-Message/perl-HTTP-Message.changes      
2026-06-09 14:13:24.771460049 +0200
+++ 
/work/SRC/openSUSE:Factory/.perl-HTTP-Message.new.1258/perl-HTTP-Message.changes
    2026-08-22 21:36:00.327902845 +0200
@@ -1,0 +2,14 @@
+Fri Jul 24 08:28:50 UTC 2026 - Tina Müller <[email protected]>
+
+- updated to 7.40.0 (7.04)
+   see /usr/share/doc/packages/perl-HTTP-Message/Changes
+
+  7.04      2026-07-24 00:01:56Z
+      - add RFC 10008 HTTP QUERY method (GH#225) (Daniel Böhmer),
+        see https://datatracker.ietf.org/doc/rfc10008/
+
+  7.03      2026-07-21 20:45:16Z
+      - Fix max_body_size for Content-Encoding: br, which made every brotli
+        response fail to decode whenever a limit was set (GH#229)
+
+-------------------------------------------------------------------

Old:
----
  HTTP-Message-7.02.tar.gz

New:
----
  HTTP-Message-7.04.tar.gz

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

Other differences:
------------------
++++++ perl-HTTP-Message.spec ++++++
--- /var/tmp/diff_new_pack.mAgeXQ/_old  2026-08-22 21:36:02.049964303 +0200
+++ /var/tmp/diff_new_pack.mAgeXQ/_new  2026-08-22 21:36:02.051964374 +0200
@@ -18,10 +18,10 @@
 
 %define cpan_name HTTP-Message
 Name:           perl-HTTP-Message
-Version:        7.20.0
+Version:        7.40.0
 Release:        0
-# 7.02 -> normalize -> 7.20.0
-%define cpan_version 7.02
+# 7.04 -> normalize -> 7.40.0
+%define cpan_version 7.04
 License:        Artistic-1.0 OR GPL-1.0-or-later
 Summary:        HTTP style message (base class)
 URL:            https://metacpan.org/release/%{cpan_name}

++++++ HTTP-Message-7.02.tar.gz -> HTTP-Message-7.04.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HTTP-Message-7.02/CONTRIBUTORS 
new/HTTP-Message-7.04/CONTRIBUTORS
--- old/HTTP-Message-7.02/CONTRIBUTORS  2026-06-06 01:28:46.000000000 +0200
+++ new/HTTP-Message-7.04/CONTRIBUTORS  2026-07-24 02:02:07.000000000 +0200
@@ -22,6 +22,7 @@
     * chromatic
     * copilot-swe-agent[bot]
     * Dan Book
+    * Daniel Böhmer
     * Daniel Hedlund
     * Daniel Trizen
     * David E. Wheeler
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HTTP-Message-7.02/Changes 
new/HTTP-Message-7.04/Changes
--- old/HTTP-Message-7.02/Changes       2026-06-06 01:28:46.000000000 +0200
+++ new/HTTP-Message-7.04/Changes       2026-07-24 02:02:07.000000000 +0200
@@ -1,5 +1,13 @@
 Revision history for HTTP-Message
 
+7.04      2026-07-24 00:01:56Z
+    - add RFC 10008 HTTP QUERY method (GH#225) (Daniel Böhmer),
+      see https://datatracker.ietf.org/doc/rfc10008/
+
+7.03      2026-07-21 20:45:16Z
+    - Fix max_body_size for Content-Encoding: br, which made every brotli
+      response fail to decode whenever a limit was set (GH#229)
+
 7.02      2026-06-05 23:28:36Z
     - now handling HTTP method '0' (GH#211) (Karen Etheridge)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HTTP-Message-7.02/META.json 
new/HTTP-Message-7.04/META.json
--- old/HTTP-Message-7.02/META.json     2026-06-06 01:28:46.000000000 +0200
+++ new/HTTP-Message-7.04/META.json     2026-07-24 02:02:07.000000000 +0200
@@ -110,7 +110,7 @@
       "x_IRC" : "irc://irc.perl.org/#lwp",
       "x_MailingList" : "mailto:[email protected]";
    },
-   "version" : "7.02",
+   "version" : "7.04",
    "x_Dist_Zilla" : {
       "perl" : {
          "version" : "5.042002"
@@ -612,7 +612,7 @@
                   "branch" : null,
                   "changelog" : "Changes",
                   "signed" : 0,
-                  "tag" : "v7.02",
+                  "tag" : "v7.04",
                   "tag_format" : "v%V",
                   "tag_message" : "v%V"
                },
@@ -812,6 +812,7 @@
       "chromatic <[email protected]>",
       "copilot-swe-agent[bot] <[email protected]>",
       "Dan Book <[email protected]>",
+      "Daniel B\u00f6hmer <[email protected]>",
       "Daniel Hedlund <[email protected]>",
       "Daniel Trizen <[email protected]>",
       "David E. Wheeler <[email protected]>",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HTTP-Message-7.02/META.yml 
new/HTTP-Message-7.04/META.yml
--- old/HTTP-Message-7.02/META.yml      2026-06-06 01:28:46.000000000 +0200
+++ new/HTTP-Message-7.04/META.yml      2026-07-24 02:02:07.000000000 +0200
@@ -63,7 +63,7 @@
   bugtracker: https://github.com/libwww-perl/HTTP-Message/issues
   homepage: https://github.com/libwww-perl/HTTP-Message
   repository: https://github.com/libwww-perl/HTTP-Message.git
-version: '7.02'
+version: '7.04'
 x_Dist_Zilla:
   perl:
     version: '5.042002'
@@ -452,7 +452,7 @@
           branch: ~
           changelog: Changes
           signed: 0
-          tag: v7.02
+          tag: v7.04
           tag_format: v%V
           tag_message: v%V
         Dist::Zilla::Role::Git::Repo:
@@ -605,6 +605,7 @@
   - 'chromatic <[email protected]>'
   - 'copilot-swe-agent[bot] <[email protected]>'
   - 'Dan Book <[email protected]>'
+  - 'Daniel Böhmer <[email protected]>'
   - 'Daniel Hedlund <[email protected]>'
   - 'Daniel Trizen <[email protected]>'
   - 'David E. Wheeler <[email protected]>'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HTTP-Message-7.02/Makefile.PL 
new/HTTP-Message-7.04/Makefile.PL
--- old/HTTP-Message-7.02/Makefile.PL   2026-06-06 01:28:46.000000000 +0200
+++ new/HTTP-Message-7.04/Makefile.PL   2026-07-24 02:02:07.000000000 +0200
@@ -53,7 +53,7 @@
     "lib" => 0,
     "overload" => 0
   },
-  "VERSION" => "7.02",
+  "VERSION" => "7.04",
   "test" => {
     "TESTS" => "t/*.t"
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HTTP-Message-7.02/README.md 
new/HTTP-Message-7.04/README.md
--- old/HTTP-Message-7.02/README.md     2026-06-06 01:28:46.000000000 +0200
+++ new/HTTP-Message-7.04/README.md     2026-07-24 02:02:07.000000000 +0200
@@ -4,7 +4,7 @@
 
 # VERSION
 
-version 7.02
+version 7.04
 
 # SYNOPSIS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HTTP-Message-7.02/lib/HTTP/Config.pm 
new/HTTP-Message-7.04/lib/HTTP/Config.pm
--- old/HTTP-Message-7.02/lib/HTTP/Config.pm    2026-06-06 01:28:46.000000000 
+0200
+++ new/HTTP-Message-7.04/lib/HTTP/Config.pm    2026-07-24 02:02:07.000000000 
+0200
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '7.02';
+our $VERSION = '7.04';
 
 use URI;
 
@@ -249,7 +249,7 @@
 
 =head1 VERSION
 
-version 7.02
+version 7.04
 
 =head1 SYNOPSIS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HTTP-Message-7.02/lib/HTTP/Headers/Auth.pm 
new/HTTP-Message-7.04/lib/HTTP/Headers/Auth.pm
--- old/HTTP-Message-7.02/lib/HTTP/Headers/Auth.pm      2026-06-06 
01:28:46.000000000 +0200
+++ new/HTTP-Message-7.04/lib/HTTP/Headers/Auth.pm      2026-07-24 
02:02:07.000000000 +0200
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '7.02';
+our $VERSION = '7.04';
 
 use HTTP::Headers;
 
@@ -111,7 +111,7 @@
 
 =head1 VERSION
 
-version 7.02
+version 7.04
 
 =head1 AUTHOR
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HTTP-Message-7.02/lib/HTTP/Headers/ETag.pm 
new/HTTP-Message-7.04/lib/HTTP/Headers/ETag.pm
--- old/HTTP-Message-7.02/lib/HTTP/Headers/ETag.pm      2026-06-06 
01:28:46.000000000 +0200
+++ new/HTTP-Message-7.04/lib/HTTP/Headers/ETag.pm      2026-07-24 
02:02:07.000000000 +0200
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '7.02';
+our $VERSION = '7.04';
 
 require HTTP::Date;
 
@@ -107,7 +107,7 @@
 
 =head1 VERSION
 
-version 7.02
+version 7.04
 
 =head1 AUTHOR
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HTTP-Message-7.02/lib/HTTP/Headers/Util.pm 
new/HTTP-Message-7.04/lib/HTTP/Headers/Util.pm
--- old/HTTP-Message-7.02/lib/HTTP/Headers/Util.pm      2026-06-06 
01:28:46.000000000 +0200
+++ new/HTTP-Message-7.04/lib/HTTP/Headers/Util.pm      2026-07-24 
02:02:07.000000000 +0200
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '7.02';
+our $VERSION = '7.04';
 
 use Exporter 5.57 'import';
 
@@ -103,7 +103,7 @@
 
 =head1 VERSION
 
-version 7.02
+version 7.04
 
 =head1 SYNOPSIS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HTTP-Message-7.02/lib/HTTP/Headers.pm 
new/HTTP-Message-7.04/lib/HTTP/Headers.pm
--- old/HTTP-Message-7.02/lib/HTTP/Headers.pm   2026-06-06 01:28:46.000000000 
+0200
+++ new/HTTP-Message-7.04/lib/HTTP/Headers.pm   2026-07-24 02:02:07.000000000 
+0200
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '7.02';
+our $VERSION = '7.04';
 
 use Clone qw(clone);
 use Carp ();
@@ -463,7 +463,7 @@
 
 =head1 VERSION
 
-version 7.02
+version 7.04
 
 =head1 SYNOPSIS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HTTP-Message-7.02/lib/HTTP/Message.pm 
new/HTTP-Message-7.04/lib/HTTP/Message.pm
--- old/HTTP-Message-7.02/lib/HTTP/Message.pm   2026-06-06 01:28:46.000000000 
+0200
+++ new/HTTP-Message-7.04/lib/HTTP/Message.pm   2026-07-24 02:02:07.000000000 
+0200
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '7.02';
+our $VERSION = '7.04';
 
 require HTTP::Headers;
 require Carp;
@@ -341,12 +341,23 @@
                }
                elsif ($ce eq 'br') {
                    require IO::Uncompress::Brotli;
-                   my $bro = IO::Uncompress::Brotli->create;
 
                    my $output;
                    if( defined $content_limit ) {
-                       $output = eval { $bro->decompress( $$content_ref, 
$content_limit ); }
+                       # unbro() is the only brotli interface that takes a size
+                       # limit; the streaming decompress() method cannot stop
+                       # short. It decodes into a buffer of $content_limit
+                       # octets, so the limit bounds the allocation directly.
+                       $output = eval {
+                           IO::Uncompress::Brotli::unbro($$content_ref, 
$content_limit);
+                       };
+                       # Brotli reports "output buffer too small" and "this is
+                       # not valid brotli" identically, so, unlike the gzip and
+                       # bzip2 branches, we cannot say for certain which it 
was.
+                       $@ and $@ =~ /BrotliDecoderDecompress/
+                           and Carp::croak("Can't unbrotli content: it is 
corrupt, or would decode to more than $content_limit octets");
                    } else {
+                       my $bro = IO::Uncompress::Brotli->create;
                        $output = eval { $bro->decompress($$content_ref) };
                    }
 
@@ -884,7 +895,7 @@
 
 =head1 VERSION
 
-version 7.02
+version 7.04
 
 =head1 SYNOPSIS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HTTP-Message-7.02/lib/HTTP/Request/Common.pm 
new/HTTP-Message-7.04/lib/HTTP/Request/Common.pm
--- old/HTTP-Message-7.02/lib/HTTP/Request/Common.pm    2026-06-06 
01:28:46.000000000 +0200
+++ new/HTTP-Message-7.04/lib/HTTP/Request/Common.pm    2026-07-24 
02:02:07.000000000 +0200
@@ -3,15 +3,15 @@
 use strict;
 use warnings;
 
-our $VERSION = '7.02';
+our $VERSION = '7.04';
 
 our $DYNAMIC_FILE_UPLOAD ||= 0;  # make it defined (don't know why)
 our $READ_BUFFER_SIZE      = 8192;
 
 use Exporter 5.57 'import';
 
-our @EXPORT =qw(GET HEAD PUT PATCH POST OPTIONS);
-our @EXPORT_OK = qw($DYNAMIC_FILE_UPLOAD DELETE);
+our @EXPORT = qw(GET HEAD OPTIONS PATCH POST PUT);
+our @EXPORT_OK = qw($DYNAMIC_FILE_UPLOAD DELETE QUERY);
 
 require HTTP::Request;
 use Carp();
@@ -22,10 +22,11 @@
 sub GET  { _simple_req('GET',  @_); }
 sub HEAD { _simple_req('HEAD', @_); }
 sub DELETE { _simple_req('DELETE', @_); }
+sub OPTIONS { request_type_with_data('OPTIONS', @_); }
 sub PATCH { request_type_with_data('PATCH', @_); }
 sub POST { request_type_with_data('POST', @_); }
 sub PUT { request_type_with_data('PUT', @_); }
-sub OPTIONS { request_type_with_data('OPTIONS', @_); }
+sub QUERY { request_type_with_data('QUERY', @_); }
 
 sub request_type_with_data
 {
@@ -312,7 +313,7 @@
 
 =head1 VERSION
 
-version 7.02
+version 7.04
 
 =head1 SYNOPSIS
 
@@ -324,6 +325,10 @@
   $ua->request(PUT 'http://somewhere/foo', foo => bar, bar => foo);
   $ua->request(OPTIONS 'http://somewhere/foo', foo => bar, bar => foo);
 
+  use HTTP::Request::Common qw(DELETE QUERY);
+  $ua->request(DELETE 'http://somewhere/foo', foo => bar, bar => foo);
+  $ua->request(QUERY 'http://somewhere/foo', foo => bar, bar => foo);
+
 =head1 DESCRIPTION
 
 This module provides functions that return newly created C<HTTP::Request>
@@ -425,7 +430,7 @@
 
 =item POST $url, Header => Value,..., Content => $content
 
-C<POST>, C<PATCH> and C<PUT> all work with the same parameters.
+C<OPTIONS>, C<POST>, C<PATCH>, C<PUT> and C<QUERY> all work with the same 
parameters.
 
   %data = ( title => 'something', body => something else' );
   $ua = LWP::UserAgent->new();
@@ -544,11 +549,30 @@
 defined for the request.  Not all servers (or server
 applications) like this.  Also, if the file(s) change in size between
 the time the C<Content-Length> is calculated and the time that the last
-chunk is delivered, the subroutine will C<Croak>.
+chunk is delivered, the subroutine will C<croak>.
 
 The C<post(...)>  method of L<LWP::UserAgent> exists as a shortcut for
 C<< $ua->request(POST ...) >>.
 
+=item QUERY $url
+
+=item QUERY $url, Header => Value,...
+
+=item QUERY $url, $form_ref, Header => Value,...
+
+=item QUERY $url, Header => Value,..., Content => $form_ref
+
+=item QUERY $url, Header => Value,..., Content => $content
+
+The same as C<POST> above, but the method in the request is C<QUERY>,
+the safe, idempotent method with content defined by
+L<RFC 10008|https://www.rfc-editor.org/rfc/rfc10008.html>.
+This function is not exported by default.
+
+This was added in version 7.04, so you should require that in your code:
+
+ use HTTP::Request::Common 7.04 qw(QUERY);
+
 =back
 
 =head1 SEE ALSO
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HTTP-Message-7.02/lib/HTTP/Request.pm 
new/HTTP-Message-7.04/lib/HTTP/Request.pm
--- old/HTTP-Message-7.02/lib/HTTP/Request.pm   2026-06-06 01:28:46.000000000 
+0200
+++ new/HTTP-Message-7.04/lib/HTTP/Request.pm   2026-07-24 02:02:07.000000000 
+0200
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '7.02';
+our $VERSION = '7.04';
 
 use parent 'HTTP::Message';
 
@@ -156,7 +156,7 @@
 
 =head1 VERSION
 
-version 7.02
+version 7.04
 
 =head1 SYNOPSIS
 
@@ -203,7 +203,8 @@
 =item $r->method( $val )
 
 This is used to get/set the method attribute.  The method should be a
-short string like "GET", "HEAD", "PUT", "PATCH" or "POST".
+short string like "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST",
+"PUT" or "QUERY".
 
 =item $r->uri
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HTTP-Message-7.02/lib/HTTP/Response.pm 
new/HTTP-Message-7.04/lib/HTTP/Response.pm
--- old/HTTP-Message-7.02/lib/HTTP/Response.pm  2026-06-06 01:28:46.000000000 
+0200
+++ new/HTTP-Message-7.04/lib/HTTP/Response.pm  2026-07-24 02:02:07.000000000 
+0200
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '7.02';
+our $VERSION = '7.04';
 
 use parent 'HTTP::Message';
 
@@ -350,7 +350,7 @@
 
 =head1 VERSION
 
-version 7.02
+version 7.04
 
 =head1 SYNOPSIS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HTTP-Message-7.02/lib/HTTP/Status.pm 
new/HTTP-Message-7.04/lib/HTTP/Status.pm
--- old/HTTP-Message-7.02/lib/HTTP/Status.pm    2026-06-06 01:28:46.000000000 
+0200
+++ new/HTTP-Message-7.04/lib/HTTP/Status.pm    2026-07-24 02:02:07.000000000 
+0200
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-our $VERSION = '7.02';
+our $VERSION = '7.04';
 
 use Exporter 5.57 'import';
 
@@ -183,7 +183,7 @@
 
 =head1 VERSION
 
-version 7.02
+version 7.04
 
 =head1 SYNOPSIS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HTTP-Message-7.02/t/common-req.t 
new/HTTP-Message-7.04/t/common-req.t
--- old/HTTP-Message-7.02/t/common-req.t        2026-06-06 01:28:46.000000000 
+0200
+++ new/HTTP-Message-7.04/t/common-req.t        2026-07-24 02:02:07.000000000 
+0200
@@ -6,6 +6,7 @@
 use File::Spec;
 use File::Temp qw(tempfile);
 use HTTP::Request::Common;
+use HTTP::Request::Common qw(QUERY);
 
 my $r = GET 'http://www.sn.no/';
 note $r->as_string;
@@ -72,6 +73,23 @@
      { foo => "bar" };
 is($r->content, "foo=bar");
 
+$r = QUERY "http://www.sn.no";,
+     Content => 'foo';
+note $r->as_string, "\n";
+
+is($r->method, "QUERY");
+is($r->uri->host, "www.sn.no");
+
+ok(!defined($r->header("Content")));
+
+is(${$r->content_ref}, "foo");
+is($r->content, "foo");
+is($r->content_length, 3);
+
+$r = QUERY "http://www.sn.no";,
+     { foo => "bar" };
+is($r->content, "foo=bar");
+
 #--- Test POST requests ---
 
 $r = POST "http://www.sn.no";, [foo => 'bar;baz',
@@ -262,15 +280,21 @@
 is($r->method, "DELETE");
 
 $r = HTTP::Request::Common::PUT 'http://www.example.com',
-    'Content-Type' => 'application/octet-steam',
+    'Content-Type' => 'application/octet-stream',
     'Content' => 'foobarbaz',
     'Content-Length' => 12;   # a slight lie
 is($r->header('Content-Length'), 9);
 
 $r = HTTP::Request::Common::PATCH 'http://www.example.com',
-    'Content-Type' => 'application/octet-steam',
+    'Content-Type' => 'application/octet-stream',
     'Content' => 'foobarbaz',
     'Content-Length' => 12;   # a slight lie
 is($r->header('Content-Length'), 9);
 
+$r = HTTP::Request::Common::QUERY 'http://www.example.com',
+    'Content-Type' => 'application/octet-stream',
+    'Content' => 'foobarbaz',
+    'Content-Length' => 12;
+is($r->header('Content-Length'), 9, 'Content-Length is recalculated, not taken 
from the header');
+
 done_testing();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/HTTP-Message-7.02/t/message-decode-brotlibomb.t 
new/HTTP-Message-7.04/t/message-decode-brotlibomb.t
--- old/HTTP-Message-7.02/t/message-decode-brotlibomb.t 2026-06-06 
01:28:46.000000000 +0200
+++ new/HTTP-Message-7.04/t/message-decode-brotlibomb.t 2026-07-24 
02:02:07.000000000 +0200
@@ -10,8 +10,6 @@
 
 use Test::Needs 'IO::Compress::Brotli', 'IO::Uncompress::Brotli';
 
-plan tests => 9;
-
 # Create a nasty brotli stream:
 my $size = 16 * 1024 * 1024;
 my $stream = "\0" x $size;
@@ -66,6 +64,8 @@
 my $err = $@;
 is $lives, undef, "We die when trying to decode something larger than our 
global limit of 512k"
     or diag "... using IO::Uncompress::Brotli version 
$IO::Uncompress::Brotli::VERSION";
+like( $err, qr/more than 524288 octets/,
+    '... and we die because of the limit, not for some other reason' );
 
 $response->max_body_size(undef);
 is $response->max_body_size, undef, "We can remove the maximum size 
restriction";
@@ -88,6 +88,29 @@
 is $lives, undef, "We die when trying to decode something larger than our 
limit of 512k using a parameter"
     or diag "... using IO::Uncompress::Brotli version 
$IO::Uncompress::Brotli::VERSION";
 
+# Setting a limit must not break the brotli responses that fit under it.
+{
+    my $enc   = IO::Compress::Brotli->create;
+    my $small = $enc->compress('hello world') . $enc->finish;
+
+    my $small_response = HTTP::Response->new(
+        200, 'OK',
+        HTTP::Headers->new(
+            Content_Type     => 'text/plain',
+            Content_Encoding => 'br',
+        ),
+        $small,
+    );
+    $small_response->max_body_size( 512 * 1024 );
+
+    is( $small_response->decoded_content( raise_error => 1 ), 'hello world',
+        'A brotli body well under the limit still decodes' )
+        or diag
+        "... using IO::Uncompress::Brotli version 
$IO::Uncompress::Brotli::VERSION";
+}
+
+done_testing();
+
 =head1 SEE ALSO
 
 
L<https://security.stackexchange.com/questions/51071/zlib-deflate-decompression-bomb>

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.mAgeXQ/_old  2026-08-22 21:36:02.402976901 +0200
+++ /var/tmp/diff_new_pack.mAgeXQ/_new  2026-08-22 21:36:02.408977115 +0200
@@ -1,6 +1,6 @@
-mtime: 1780792672
-commit: c95c3bdbf2786a3d96404fd7e01792623400d9595a80bada003beb2817242e1e
+mtime: 1784881731
+commit: a72220277f469bd088829aa13b57ec3befda12302192f0de0e480121e2fc644c
 url: https://src.opensuse.org/perl/perl-HTTP-Message
-revision: c95c3bdbf2786a3d96404fd7e01792623400d9595a80bada003beb2817242e1e
+revision: a72220277f469bd088829aa13b57ec3befda12302192f0de0e480121e2fc644c
 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-07-24 10:28:51.000000000 +0200
@@ -0,0 +1 @@
+.osc

Reply via email to