From 6c5f762596af9567afc4691beea212483fa7a07a Mon Sep 17 00:00:00 2001
From: Guilhem Moulin <guilhem@fripost.org>
Date: Thu, 7 Nov 2019 19:57:34 +0100
Subject: libinterimap: Don't panic at the end of the compressed stream.

Cf. Compress::Raw::Zlib's documentation.  Z_STREAM_END denotes a
successful state.
---
 lib/Net/IMAP/InterIMAP.pm | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

(limited to 'lib/Net')

diff --git a/lib/Net/IMAP/InterIMAP.pm b/lib/Net/IMAP/InterIMAP.pm
index 9c95109..2d1f644 100644
--- a/lib/Net/IMAP/InterIMAP.pm
+++ b/lib/Net/IMAP/InterIMAP.pm
@@ -20,7 +20,7 @@ package Net::IMAP::InterIMAP v0.0.5;
 use warnings;
 use strict;
 
-use Compress::Raw::Zlib qw/Z_OK Z_FULL_FLUSH Z_SYNC_FLUSH MAX_WBITS/;
+use Compress::Raw::Zlib qw/Z_OK Z_STREAM_END Z_FULL_FLUSH Z_SYNC_FLUSH MAX_WBITS/;
 use Config::Tiny ();
 use Errno qw/EEXIST EINTR/;
 use Net::SSLeay 1.73 ();
@@ -1723,8 +1723,9 @@ sub _getline($;$) {
             $self->{_OUTRAWCOUNT} += $n;
 
             if (defined (my $i = $self->{_Z_INFLATE})) {
-                $i->inflate($buf, $self->{_OUTBUF}) == Z_OK or
-                    $self->panic("Inflation failed: ", $i->msg());
+                my $r = $i->inflate($buf, $self->{_OUTBUF});
+                $self->panic("Inflation failed: $r ", $i->msg())
+                    unless $r == Z_OK or $r == Z_STREAM_END;
             }
             else {
                 $self->{_OUTBUF} = $buf;
-- 
cgit v1.2.3