From 69ec0a28fd6b83f7001027dbc60ffa6b8e6b27bb Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Thu, 21 Jul 2005 04:30:58 +0000 Subject: Bug 301458: Move url_decode out of CGI.pl - Patch by Frédéric Buclin r=mkanat a=myk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bugzilla/Util.pm | 28 ++++++++++++++++++++++++++++ CGI.pl | 8 -------- query.cgi | 3 ++- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/Bugzilla/Util.pm b/Bugzilla/Util.pm index 256be5c31..6422984c2 100644 --- a/Bugzilla/Util.pm +++ b/Bugzilla/Util.pm @@ -131,6 +131,13 @@ sub xml_quote { return $var; } +sub url_decode { + my ($todecode) = (@_); + $todecode =~ tr/+/ /; # pluses become spaces + $todecode =~ s/%([0-9a-fA-F]{2})/pack("c",hex($1))/ge; + return $todecode; +} + sub i_am_cgi () { # I use SERVER_SOFTWARE because it's required to be # defined for all requests in the CGI spec. @@ -391,6 +398,9 @@ Bugzilla::Util - Generic utility functions for bugzilla value_quote($var); xml_quote($var); + # Functions for decoding + $rv = url_decode($var); + # Functions that tell you about your environment my $is_cgi = i_am_cgi(); @@ -416,6 +426,9 @@ Bugzilla::Util - Generic utility functions for bugzilla # Cryptographic Functions $crypted_password = bz_crypt($password); + # Validation Functions + check_email_syntax($email); + =head1 DESCRIPTION This package contains various utility functions which do not belong anywhere @@ -498,6 +511,10 @@ This is similar to C, except that ' is escaped to '. This is kept separate from html_quote partly for compatibility with previous code (for ') and partly for future handling of non-ASCII characters. +=item C + +Converts the %xx encoding from the given URL back to its original form. + =item C Tells you whether or not you are being run as a CGI script in a web @@ -638,3 +655,14 @@ characters of the password to anyone who views the encrypted version. =end undocumented =back + +=head2 Validation + +=over 4 + +=item C + +Do a syntax checking for a legal email address. An error is thrown +if the validation fails. + +=back diff --git a/CGI.pl b/CGI.pl index a5f369f81..9c65efdf2 100644 --- a/CGI.pl +++ b/CGI.pl @@ -55,14 +55,6 @@ use vars qw($template $vars); # Implementations of several of the below were blatently stolen from CGI.pm, # by Lincoln D. Stein. -# Get rid of all the %xx encoding and the like from the given URL. -sub url_decode { - my ($todecode) = (@_); - $todecode =~ tr/+/ /; # pluses become spaces - $todecode =~ s/%([0-9a-fA-F]{2})/pack("c",hex($1))/ge; - return $todecode; -} - # check and see if a given field exists, is non-empty, and is set to a # legal value. assume a browser bug and abort appropriately if not. # if $legalsRef is not passed, just check to make sure the value exists and diff --git a/query.cgi b/query.cgi index fa4a791f8..ff04c15a0 100755 --- a/query.cgi +++ b/query.cgi @@ -33,6 +33,7 @@ require "CGI.pl"; use Bugzilla::Constants; use Bugzilla::Search; use Bugzilla::User; +use Bugzilla::Util; use vars qw( @CheckOptionValues @@ -165,7 +166,7 @@ sub PrefillForm { my $name = $el[0]; my $value; if ($#el > 0) { - $value = url_decode($el[1]); + $value = Bugzilla::Util::url_decode($el[1]); } else { $value = ""; } -- cgit v1.2.3-24-g4f1b