Package: bugs.debian.org
Severity: minor
Tags: patch

Dear Maintainer,

   * What led up to the situation?
   I registered two of my email addresses I used to submit bugs to debbug to
   libravatar.org, one of which containing a + sign.

   * What exactly did you do (or not do) that was effective (or
     ineffective)?
     I tried to visit the URL :
     http://bugs.debian.org/cgi-bin/libravatar.cgi?email=f+deb...@chezlefab.net
     it displayed the empty png avatar, as expected.

     I tried to visit the URL :
     
http://bugs.debian.org/cgi-bin/libravatar.cgi?email=f%2bdeb...@chezlefab.net
     it displayed my avatar, as expected.

     I visited one of my messages on the tracker that uses this address:
     http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=727680#5
     it didn't displayed my avatar, but it should have.

     I visited one of my messages on the tracker that uses the other address:
     http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=602463#5
     it did displayed my avatar, as expected.

Digging into the sources, it seemed to me that the email addresses were not
uri_encoded before being given as a parameter to libravatar.cgi

I believe the enclosed pbtch fixes this issue.

Best regards,

-- 
captnfab

-- System Information:
Debian Release: jessie/sid
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'proposed-updates'), (500, 
'oldstable-updates'), (500, 'oldstable-proposed-updates'), (500, 'unstable'), 
(500, 'testing'), (500, 'stable'), (500, 'oldstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.11-1-amd64 (SMP w/8 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8) (ignored: LC_ALL 
set to fr_FR.UTF-8)
Shell: /bin/sh linked to /bin/dash
diff --git a/Debbugs/CGI/Bugreport.pm b/Debbugs/CGI/Bugreport.pm
index 2e53892..32820a8 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;
 
 BEGIN{
      ($VERSION) = q$Revision: 494 $ =~ /^Revision:\s+([^\s+])/;
@@ -452,7 +453,7 @@ sub __libravatar_url {
         return undef;
     }
     ($email) = get_addresses($email);
-    return $config{libravatar_uri}.$email.($config{libravatar_uri_options}//'');
+    return $config{libravatar_uri}.uri_escape($email).($config{libravatar_uri_options}//'');
 }
 
 

Reply via email to