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=-2.9 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00, T_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 302191F80E for ; Thu, 15 Oct 2015 18:32:40 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH] filter: fix handling of bad attachments Date: Thu, 15 Oct 2015 18:32:40 +0000 Message-Id: <20151015183240.17440-1-e@80x24.org> List-Id: Improve error messages and use a better regexp for detecting printable characters in attachments. --- lib/PublicInbox/Filter.pm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/PublicInbox/Filter.pm b/lib/PublicInbox/Filter.pm index 01052d0..82baa9b 100644 --- a/lib/PublicInbox/Filter.pm +++ b/lib/PublicInbox/Filter.pm @@ -151,7 +151,8 @@ sub strip_multipart { if (recheck_type_ok($part)) { push @keep, $part; } elsif ($filter) { - $filter->reject(TEXT_ONLY); + $filter->reject("Bad attachment: $part_type ". + TEXT_ONLY); } else { $rejected++; } @@ -162,8 +163,10 @@ sub strip_multipart { if ($rejected == 0 && !@html) { push @keep, $part; } + } elsif ($filter) { + $filter->reject("unacceptable mime-type: $part_type ". + TEXT_ONLY); } else { - $filter->reject(TEXT_ONLY) if $filter; # reject everything else, including non-PGP signatures $rejected++; } @@ -232,8 +235,7 @@ sub replace_body { sub recheck_type_ok { my ($part) = @_; my $s = $part->body; - ((length($s) < 0x10000) && - ($s =~ /\A([\P{XPosixPrint}\f\n\r\t]+)\z/)) + ((length($s) < 0x10000) && ($s =~ /\A([[:print:]\s]+)\z/s)); } 1; -- EW