- Fix handling of invalid characters in request (#1488124)

pull/1/head
alecpl 13 years ago
parent 0829b76598
commit 2cf55f4096

@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
- Fix handling of invalid characters in request (#1488124)
- Fix merging some configuration options in update.sh script (#1485864)
- Fix so TEXT key will remove all HEADER keys in IMAP SEARCH (#1488208)
- Fix handling contact photo url with https:// prefix (#1488202)

@ -641,12 +641,15 @@ function get_input_value($fname, $source, $allow_html=FALSE, $charset=NULL)
{
$value = NULL;
if ($source==RCUBE_INPUT_GET && isset($_GET[$fname]))
if ($source == RCUBE_INPUT_GET) {
if (isset($_GET[$fname]))
$value = $_GET[$fname];
else if ($source==RCUBE_INPUT_POST && isset($_POST[$fname]))
}
else if ($source == RCUBE_INPUT_POST) {
if (isset($_POST[$fname]))
$value = $_POST[$fname];
else if ($source==RCUBE_INPUT_GPC)
{
}
else if ($source == RCUBE_INPUT_GPC) {
if (isset($_POST[$fname]))
$value = $_POST[$fname];
else if (isset($_GET[$fname]))
@ -691,10 +694,16 @@ function parse_input_value($value, $allow_html=FALSE, $charset=NULL)
if (!$allow_html)
$value = strip_tags($value);
$output_charset = is_object($OUTPUT) ? $OUTPUT->get_charset() : null;
// remove invalid characters (#1488124)
if ($output_charset == 'UTF-8')
$value = rc_utf8_clean($value);
// convert to internal charset
if (is_object($OUTPUT) && $charset)
return rcube_charset_convert($value, $OUTPUT->get_charset(), $charset);
else
if ($charset && $output_charset)
$value = rcube_charset_convert($value, $output_charset, $charset);
return $value;
}
@ -711,7 +720,7 @@ function request2param($mode = RCUBE_INPUT_GPC, $ignore = 'task|action')
$src = $mode == RCUBE_INPUT_GET ? $_GET : ($mode == RCUBE_INPUT_POST ? $_POST : $_REQUEST);
foreach ($src as $key => $value) {
$fname = $key[0] == '_' ? substr($key, 1) : $key;
if ($ignore && !preg_match("/($ignore)/", $fname))
if ($ignore && !preg_match('/^(' . $ignore . ')$/', $fname))
$out[$fname] = get_input_value($key, $mode);
}

Loading…
Cancel
Save