mirror of
https://github.com/WordPress/WordPress.git
synced 2025-01-03 06:57:35 +01:00
Handle multiple feed: schemes.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20540 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
b7e407cce8
commit
a7ef8337be
@ -975,12 +975,15 @@ function wp_kses_check_attr_val($value, $vless, $checkname, $checkvalue) {
|
|||||||
*/
|
*/
|
||||||
function wp_kses_bad_protocol($string, $allowed_protocols) {
|
function wp_kses_bad_protocol($string, $allowed_protocols) {
|
||||||
$string = wp_kses_no_null($string);
|
$string = wp_kses_no_null($string);
|
||||||
$string2 = $string.'a';
|
$iterations = 0;
|
||||||
|
|
||||||
while ($string != $string2) {
|
do {
|
||||||
$string2 = $string;
|
$original_string = $string;
|
||||||
$string = wp_kses_bad_protocol_once($string, $allowed_protocols);
|
$string = wp_kses_bad_protocol_once($string, $allowed_protocols);
|
||||||
} # while
|
} while ( $original_string != $string && ++$iterations < 6 );
|
||||||
|
|
||||||
|
if ( $original_string != $string )
|
||||||
|
return '';
|
||||||
|
|
||||||
return $string;
|
return $string;
|
||||||
}
|
}
|
||||||
@ -1079,10 +1082,20 @@ function wp_kses_html_error($string) {
|
|||||||
* @param string $allowed_protocols Allowed protocols
|
* @param string $allowed_protocols Allowed protocols
|
||||||
* @return string Sanitized content
|
* @return string Sanitized content
|
||||||
*/
|
*/
|
||||||
function wp_kses_bad_protocol_once($string, $allowed_protocols) {
|
function wp_kses_bad_protocol_once($string, $allowed_protocols, $count = 1 ) {
|
||||||
$string2 = preg_split( '/:|�*58;|�*3a;/i', $string, 2 );
|
$string2 = preg_split( '/:|�*58;|�*3a;/i', $string, 2 );
|
||||||
if ( isset($string2[1]) && ! preg_match('%/\?%', $string2[0]) )
|
if ( isset($string2[1]) && ! preg_match('%/\?%', $string2[0]) ) {
|
||||||
$string = wp_kses_bad_protocol_once2( $string2[0], $allowed_protocols ) . trim( $string2[1] );
|
$string = trim( $string2[1] );
|
||||||
|
$protocol = wp_kses_bad_protocol_once2( $string2[0], $allowed_protocols );
|
||||||
|
if ( 'feed:' == $protocol ) {
|
||||||
|
if ( $count > 2 )
|
||||||
|
return '';
|
||||||
|
$string = wp_kses_bad_protocol_once( $string, $allowed_protocols, ++$count );
|
||||||
|
if ( empty( $string ) )
|
||||||
|
return $string;
|
||||||
|
}
|
||||||
|
$string = $protocol . $string;
|
||||||
|
}
|
||||||
|
|
||||||
return $string;
|
return $string;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user