]> git.donarmstrong.com Git - debbugs.git/commitdiff
Fix unescaped From in bugreport (closes: #983847)
authorDon Armstrong <don@donarmstrong.com>
Sun, 7 Mar 2021 16:38:15 +0000 (08:38 -0800)
committerDon Armstrong <don@donarmstrong.com>
Sun, 7 Mar 2021 16:38:15 +0000 (08:38 -0800)
cgi/bugreport.cgi
debian/changelog
t/07_bugreport.t

index d153e086280ca1f7bafb045e8550438855bb0b70..9969abbef09614263ed58c1aed6290dd9653b894 100755 (executable)
@@ -329,7 +329,11 @@ END
          print map { s/^(>*From )/>$1/; $_."\n" } @lines[ 1 .. $#lines ];
       if ($record->{inner_file}) {
           my $fh = $record->{fh};
-          print $_ while (<$fh>);
+          local $/;
+          while (<$fh>) {
+              s/^(>*From )/>$1/gm;
+              print $_;
+          }
       }
      }
      exit 0;
index acb7d12e5369e5edc802861ae6d7ce3ea6865d91..ef98f3cfbeaf9e8bb64bbb1aa0a2b506ab5165fa 100644 (file)
@@ -3,6 +3,7 @@ debbugs (3.0.0~alpha.1) unstable; urgency=medium
   * Use Text::Xslate instead of Text::Template; Text::Xslate is significantly
     faster.
   * Add support for a Done: psuedoheader (closes: #950133)
+  * Fix unescaped From (closes: #983847)
 
  -- Don Armstrong <don@debian.org>  Fri, 09 Mar 2018 11:17:10 -0800
 
index fbbb09fdd6a1600be859908e6ce0d07646cd2850..0e99f7f1ad69e4dbc7074c7fbf7eb27f6dc15f18 100644 (file)
@@ -1,7 +1,7 @@
 # -*- mode: cperl;-*-
 
 
-use Test::More tests => 18;
+use Test::More tests => 19;
 
 use warnings;
 use strict;
@@ -37,7 +37,9 @@ send_message(to=>'submit@bugs.something',
 Package: foo
 Severity: normal
 
-This is a silly bug
+This is a silly bug which contains an unescaped From line.
+
+From line
 EOF
 
 
@@ -91,6 +93,9 @@ ok($mech->content() =~ qr/Subject: Submitting a bug/i,
    'Subject of bug maibox is right');
 ok($mech->content() =~ qr/^From /m,
    'Starts with a From appropriately');
+ok($mech->content() =~ qr/^(>F|=46)rom line/m,
+   'From line escaped appropriately');
+print STDERR $mech->content();
 
 $mech->get_ok('http://localhost:'.$port.'/?bug=1;mboxmaint=yes',
               'Page received ok');