]> mj.ucw.cz Git - libucw.git/commitdiff
UCW::CGI: Escaping functions silently convert undef to undef
authorMartin Mares <mj@ucw.cz>
Tue, 15 Oct 2013 12:41:10 +0000 (14:41 +0200)
committerMartin Mares <mj@ucw.cz>
Tue, 15 Oct 2013 12:41:10 +0000 (14:41 +0200)
ucw/perl/UCW/CGI.pm

index 7cb346391d6a1f89dd6ee78118c197df6624d3d0..f81bd3ea300da22776457a5cf0b52ed34f17791b 100644 (file)
@@ -31,6 +31,7 @@ sub http_error($;@) {
 
 sub url_escape($) {
        my $x = shift @_;
+       defined $x or return;
        utf8::encode($x) if $utf8_mode;
        $x =~ s/([^-\$_.!*'(),0-9A-Za-z\x80-\xff])/"%".unpack('H2',$1)/ge;
        utf8::decode($x) if $utf8_mode;
@@ -39,6 +40,7 @@ sub url_escape($) {
 
 sub url_deescape($) {
        my $x = shift @_;
+       defined $x or return;
        utf8::encode($x) if $utf8_mode;
        $x =~ s/%(..)/pack("H2",$1)/ge;
        utf8::decode($x) if $utf8_mode;
@@ -47,6 +49,7 @@ sub url_deescape($) {
 
 sub url_param_escape($) {
        my $x = shift @_;
+       defined $x or return;
        $x = url_escape($x);
        $x =~ s/%20/+/g;
        return $x;
@@ -54,12 +57,14 @@ sub url_param_escape($) {
 
 sub url_param_deescape($) {
        my $x = shift @_;
+       defined $x or return;
        $x =~ s/\+/ /g;
        return url_deescape($x);
 }
 
 sub html_escape($) {
        my $x = shift @_;
+       defined $x or return;
        $x =~ s/&/&amp;/g;
        $x =~ s/</&lt;/g;
        $x =~ s/>/&gt;/g;