]> Sergey Matveev's repositories - public-inbox.git/commitdiff
view: account for filter bugs which leak HTML into the repo
authorEric Wong <e@80x24.org>
Thu, 13 Nov 2014 21:20:29 +0000 (21:20 +0000)
committerEric Wong <e@80x24.org>
Thu, 13 Nov 2014 21:20:29 +0000 (21:20 +0000)
Ugh, apparently there's a (yet-to-be-fixed) bug in the Filter
code which caused an HTML message portion of a multipart message
to be displayed on the web UI.  Account for that and nuke it.

lib/PublicInbox/View.pm

index e76d904e47367f8ccc4277b21dcd59ad676e7646..b09c3ba1404df6542eeb5334365af15221ac7d6e 100644 (file)
@@ -104,7 +104,12 @@ sub index_entry {
        $mime->walk_parts(sub {
                my ($part) = @_;
                return if $part->subparts; # walk_parts already recurses
-               my $enc = enc_for($part->content_type) || $enc_msg || $enc_utf8;
+               my $ct = $part->content_type;
+
+               # account for filter bugs...
+               return if defined $ct && $ct =~ m!\btext/[xh]+tml\b!i;
+
+               my $enc = enc_for($ct) || $enc_msg || $enc_utf8;
 
                if ($part_nr > 0) {
                        my $fn = $part->filename;
@@ -178,7 +183,12 @@ sub multipart_text_as_html {
        $mime->walk_parts(sub {
                my ($part) = @_;
                return if $part->subparts; # walk_parts already recurses
-               my $enc = enc_for($part->content_type) || $enc_msg || $enc_utf8;
+               my $ct = $part->content_type;
+
+               # account for filter bugs...
+               return if defined $ct && $ct =~ m!\btext/[xh]+tml\b!i;
+
+               my $enc = enc_for($ct) || $enc_msg || $enc_utf8;
 
                if ($part_nr > 0) {
                        my $fn = $part->filename;