X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=cgi-files%2Fkiriwrite.cgi;h=3b55b08d72db508b408301a0f941ca06126de196;hb=f50ef089751cbe0dffa1dcc19a359b1d94737a59;hp=1eb2657116d4cc0ea52c8752054274df0b1bcc7a;hpb=fb02a3c6cb60580a1dce80522a06168919460207;p=kiriwrite%2F.git diff --git a/cgi-files/kiriwrite.cgi b/cgi-files/kiriwrite.cgi index 1eb2657..3b55b08 100755 --- a/cgi-files/kiriwrite.cgi +++ b/cgi-files/kiriwrite.cgi @@ -405,7 +405,7 @@ sub kiriwrite_settings_load{ # Language file contains invalid permissions so return an critical error. - kiriwrite_critical("languagefilepermissions"); + kiriwrite_critical("languagefilenameinvalidpermissions"); } @@ -1492,52 +1492,110 @@ sub kiriwrite_variablecheck{ } - # Check if the string is a valid UTF8 string. + my $chunk = 0; + my $process = 8192; + my $length = 0; + my $chunkdata = ""; - if ($variable_data =~ m/^( - [\x09\x0A\x0D\x20-\x7E] # ASCII - | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte - | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs - | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte - | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates - | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 - | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 - | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 - )*$/x){ + while ($chunk < $length){ - # The UTF-8 string is valid. + $chunkdata = substr($variable_data, $chunk, $process); - } else { - - # The UTF-8 string is not valid, check if the no error - # value is set to 1 and return an error if it isn't. - - if ($variable_noerror eq 1){ - - # The no error value has been set to 1, so return - # a value of 1 (meaning that the UTF-8 string is - # invalid). - - return 1; - - } elsif ($variable_noerror eq 0) { - - # The no error value has been set to 0, so return - # an error. - - kiriwrite_error("invalidutf8"); + if ($chunkdata =~ m/\A( + [\x09\x0A\x0D\x20-\x7E] # ASCII + | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte + | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs + | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte + | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates + | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 + | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 + | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 + )*\z/x){ + # The UTF-8 string is valid. + } else { + + # The UTF-8 string is not valid, check if the no error + # value is set to 1 and return an error if it isn't. + + if ($variable_noerror eq 1){ + + # The no error value has been set to 1, so return + # a value of 1 (meaning that the UTF-8 string is + # invalid). + + return 1; + + } elsif ($variable_noerror eq 0) { + + # The no error value has been set to 0, so return + # an error. + + kiriwrite_error("invalidutf8"); + + } else { + + # The no error value is something else other than 0 + # or 1, so return an error. + + kiriwrite_error("invalidoption"); + + } + + } - # The no error value is something else other than 0 - # or 1, so return an error. - - kiriwrite_error("invalidoption"); - } + $chunk = $chunk + $process; } +# # Check if the string is a valid UTF8 string. +# +# if ($variable_data =~ m/^( +# [\x09\x0A\x0D\x20-\x7E] # ASCII +# | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte +# | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs +# | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte +# | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates +# | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 +# | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 +# | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 +# )*$/x){ +# +# # The UTF-8 string is valid. +# +# } else { +# +# # The UTF-8 string is not valid, check if the no error +# # value is set to 1 and return an error if it isn't. +# +# if ($variable_noerror eq 1){ +# +# # The no error value has been set to 1, so return +# # a value of 1 (meaning that the UTF-8 string is +# # invalid). +# +# return 1; +# +# } elsif ($variable_noerror eq 0) { +# +# # The no error value has been set to 0, so return +# # an error. +# +# kiriwrite_error("invalidutf8"); +# +# } else { +# +# # The no error value is something else other than 0 +# # or 1, so return an error. +# +# kiriwrite_error("invalidoption"); +# +# } +# +# } + return 0; } elsif ($variable_type eq "serverprotocol"){ @@ -1636,7 +1694,7 @@ sub kiriwrite_output_header{ # date is set in the past. print "Expires: Sun, 01 Jan 2006 00:00:00 GMT\r\n"; - print "Content-Type: charset=utf-8;\r\n\r\n"; + print "Content-Type: text/html; charset=utf-8;\r\n\r\n"; return; } @@ -2043,7 +2101,7 @@ sub kiriwrite_critical{ } print "Expires: Sun, 01 Jan 2006 00:00:00 GMT\r\n"; - print "Content-Type: charset=utf-8;\r\n\r\n"; + print "Content-Type: text/html; charset=utf-8;\r\n\r\n"; print "Critical Error: " . $error_list{$error_type}; exit;