X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Debbugs%2FCGI%2FBugreport.pm;h=1518712e3a3fec462991b9add9ab10e39e957383;hb=44b7798cd85b2b1262ef719f4c28bb3eb8e5c002;hp=d9a8744ec246a8fad827b4a15790b92b2137668f;hpb=7b81a1095047ef5126801584fae1e6b9312f9558;p=debbugs.git
diff --git a/Debbugs/CGI/Bugreport.pm b/Debbugs/CGI/Bugreport.pm
index d9a8744..1518712 100644
--- a/Debbugs/CGI/Bugreport.pm
+++ b/Debbugs/CGI/Bugreport.pm
@@ -41,6 +41,7 @@ use Debbugs::UTF8;
use Debbugs::Config qw(:config);
use POSIX qw(strftime);
use Encode qw(decode_utf8 encode_utf8);
+use URI::Escape qw(uri_escape);
BEGIN{
($VERSION) = q$Revision: 494 $ =~ /^Revision:\s+([^\s+])/;
@@ -148,7 +149,7 @@ sub display_entity {
if ($_ eq 'From' and $param{avatars}) {
my $libravatar_url = __libravatar_url(decode_rfc1522($head_field));
if (defined $libravatar_url and length $libravatar_url) {
- push @headers,q(\n);
+ push @headers,q(\n);
}
}
push @headers, qq(
\n";
@@ -273,7 +274,11 @@ sub display_entity {
((?:\>\;)?[)]?(?:'|\&\#39\;)?[:.\,]?(?:\s|$)) # terminators
}{$1$2}gox;
# Add links to bug closures
- $body =~ s[(closes:\s*(?:bug)?\#?\s?\d+(?:,?\s*(?:bug)?\#?\s?\d+)*)]
+ $body =~ s[((?:closes|see):\s* # start of closed/referenced bugs
+ (?:bug)?\#?\s?\d+\s? # first bug
+ (?:,?\s*(?:bug)?\#?\s?\d+)* # additional bugs
+ (?:\s|\n|\)|\]|\}|\.|\,|$)) # ends with a space, newline, end of string, or ); fixes #747267
+ ]
[my $temp = $1;
$temp =~ s{(\d+)}
{bug_links(bug=>$1)}ge;
@@ -282,7 +287,7 @@ sub display_entity {
length $config{cve_tracker}
) {
# Add links to CVE vulnerabilities (closes #568464)
- $body =~ s{(^|\s)(CVE-\d{4}-\d{4,})(\s|[,.-\[\]]|$)}
+ $body =~ s{(^|\s|[\(\[])(CVE-\d{4}-\d{4,})(\s|[,.-\[\]\)]|$)}
{$1$2$3}gxm;
}
if (not exists $param{att}) {
@@ -376,7 +381,7 @@ sub handle_record{
{$1.$2.(bug_links(bug=>$3)).$4.
english_join([map {bug_links(bug=>$_)} (split /\,?\s+(?:and\s+)?/, $5)])}eo;
# Add links to reassigned packages
- $output =~ s{(Bug reassigned from package \`)([^']+?)((?:'|\&\#39;) to \`)([^']+?)((?:'|\&\#39;))}
+ $output =~ s{(Bug reassigned from package (?:[\`']|\&\#39;))([^']+?)((?:'|\&\#39;) to (?:[\`']|\&\#39;))([^']+?)((?:'|\&\#39;))}
{$1.q($2).$3.q($4).$5}eo;
if (defined $time) {
$output .= ' ('.strftime('%a, %d %b %Y %T GMT',gmtime($time)).') ';
@@ -452,7 +457,7 @@ sub __libravatar_url {
return undef;
}
($email) = get_addresses($email);
- return $config{libravatar_uri}.md5_hex(lc($email)).($config{libravatar_uri_options}//'');
+ return $config{libravatar_uri}.uri_escape($email.($config{libravatar_uri_options}//''));
}