diff --git a/lib/kses.php b/lib/kses.php index 476f2c380ce..204a56a802a 100644 --- a/lib/kses.php +++ b/lib/kses.php @@ -469,10 +469,12 @@ function kses_bad_protocol_once($string, $allowed_protocols) # handling whitespace and HTML entities. ############################################################################### { - return preg_replace('/^((&[^;]*;|[\sA-Za-z0-9])*)'. - '(:|�*58;|&#[Xx]0*3[Aa];)\s*/e', - 'kses_bad_protocol_once2(\'\\1\', $allowed_protocols)', - $string); + $string2 = preg_split('/:|:|:/i', $string, 2); + if(isset($string2[1]) && !preg_match('%/\?%',$string2[0])) + { + $string = kses_bad_protocol_once2($string2[0],$allowed_protocols).trim($string2[1]); + } + return $string; } # function kses_bad_protocol_once