From: Eric Wong Date: Mon, 28 Apr 2014 20:47:33 +0000 (+0000) Subject: cgi: do not decode path_info X-Git-Tag: v1.0.0~1186 X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=commitdiff_plain;h=617292c6b00b214215e401229cf5046f08b0bbba cgi: do not decode path_info We only generate URI-escaped URLs, so we should not be decoding this into octets. --- diff --git a/public-inbox.cgi b/public-inbox.cgi index 7f7e59ca..7da73754 100755 --- a/public-inbox.cgi +++ b/public-inbox.cgi @@ -13,10 +13,8 @@ use 5.008; use strict; use warnings; use CGI qw(:cgi -nosticky); # PSGI/FastCGI/mod_perl compat -use Encode qw(find_encoding); use PublicInbox::Config; use URI::Escape qw(uri_escape_utf8 uri_unescape); -our $enc_utf8 = find_encoding('UTF-8'); our $LISTNAME_RE = qr!\A/([\w\.\-]+)!; our $pi_config; BEGIN { @@ -53,10 +51,10 @@ sub main { if ($method !~ /\AGET|HEAD\z/) { return r(405, 'Method Not Allowed'); } - my $path_info = $enc_utf8->decode($cgi->path_info); + my $path_info = $cgi->path_info; # top-level indices and feeds - if ($path_info eq "/") { + if ($path_info eq '/') { r404(); } elsif ($path_info =~ m!$LISTNAME_RE\z!o) { invalid_list(\%ctx, $1) || redirect_list_index(\%ctx, $cgi);