From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-3.5 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00, RP_MATCHES_RCVD shortcircuit=no autolearn=unavailable version=3.3.2 X-Original-To: meta@public-inbox.org Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id F0E2220A28 for ; Mon, 25 Apr 2016 09:52:52 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 1/3] import: extra check for final byte read Date: Mon, 25 Apr 2016 09:52:45 +0000 Message-Id: <20160425095247.17472-2-e@80x24.org> In-Reply-To: <20160425095247.17472-1-e@80x24.org> References: <20160425095247.17472-1-e@80x24.org> List-Id: The read could fail entirely and leave $lf undefined. --- lib/PublicInbox/Import.pm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/PublicInbox/Import.pm b/lib/PublicInbox/Import.pm index 7073c3d..8a40fb5 100644 --- a/lib/PublicInbox/Import.pm +++ b/lib/PublicInbox/Import.pm @@ -93,14 +93,16 @@ sub remove { my $left = $1; my $offset = 0; my $buf = ''; + my $n; while ($left > 0) { - my $n = read($r, $buf, $left, $offset); + $n = read($r, $buf, $left, $offset); defined($n) or die "read cat-blob failed: $!"; $n == 0 and die 'fast-export (cat-blob) died'; $left -= $n; $offset += $n; } - read($r, my $lf, 1); + $n = read($r, my $lf, 1); + defined($n) or die "read final byte of cat-blob failed: $!"; die "bad read on final byte: <$lf>" if $lf ne "\n"; my $cur = Email::MIME->new($buf); if ($cur->header('Subject') ne $mime->header('Subject') || -- EW