From: Don Armstrong <don@donarmstrong.com>
Date: Mon, 22 Jul 2024 03:06:11 +0000 (-0700)
Subject: Don't linkify trailing ; in bug messages (closes #1076323)
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=5d73cf2c379d1fcb3c233bdaa096114e13cc8c4d;p=debbugs.git

Don't linkify trailing ; in bug messages (closes #1076323)
---

diff --git a/Debbugs/CGI/Bugreport.pm b/Debbugs/CGI/Bugreport.pm
index f02bf784..97356df6 100644
--- a/Debbugs/CGI/Bugreport.pm
+++ b/Debbugs/CGI/Bugreport.pm
@@ -287,7 +287,7 @@ sub display_entity {
 	 # We don't html escape here because we escape above;
 	 # wierd terminators are because of that
 	 $body =~ s{((?:ftp|http|https|svn|ftps|rsync)://[\S~-]+?/?) # Url
-		    ((?:\&gt\;)?[)]?(?:'|\&\#39\;|\&quot\;)?[:.\,]?(?:\s|$)) # terminators
+		    ((?:\&gt\;)?[)]?(?:'|\&\#39\;|\&quot\;)?[:.\,;]?(?:\s|$)) # terminators
 	      }{<a href=\"$1\">$1</a>$2}gox;
 	 # Add links to bug closures
 	 $body =~ s[((?:closes|see):\s* # start of closed/referenced bugs
diff --git a/debian/changelog b/debian/changelog
index e5d9aa06..0e3917e2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -6,6 +6,8 @@ debbugs (2.6.1) unstable; urgency=medium
     of mbox (closes: #1009181)
   * Fix missing escaping of comma in address fields (closes: #1041638)
   * Sort blocked-by (closes: 751808), thanks to Tim Landscheidt.
+  * Don't linkify trailing ; in bug messages (closes: #1076323), thanks to
+    Blair Noctis.
 
  -- Don Armstrong <don@debian.org>  Fri, 09 Mar 2018 11:17:10 -0800
 
diff --git a/t/07_bugreport.t b/t/07_bugreport.t
index 6af46919..2ece25b3 100644
--- a/t/07_bugreport.t
+++ b/t/07_bugreport.t
@@ -1,7 +1,7 @@
 # -*- mode: cperl;-*-
 
 
-use Test::More tests => 19;
+use Test::More tests => 22;
 
 use warnings;
 use strict;
@@ -150,4 +150,24 @@ EOF
 }
 
 # Other tests for bugs in the page should be added here eventually
+send_message(to => '1@bugs.something',
+	       headers => [To   => '1@bugs.something',
+			   From => 'foo@bugs.something',
+			   Subject => "Message with some links to linkify",
+			  ],
+	       body => <<EOF) or fail 'message to 1@bugs.something failed';
+This is a test message.
+
+This is a link https://example.com/foo; which should not include the ;
+
+
+This is a link https://example.com/foo;bar which should include the ;
+EOF
+
+$mech->get_ok('http://localhost:'.$port.'/?bug=1',
+		'Page received ok');
+like($mech->content(), qr(href="https://example.com/foo;bar"),
+     'Link includes ; correctly');
 
+like($mech->content(), qr(href="https://example.com/foo"),
+     'Link excludes trailing ;');