KSES: Use correct global in wp_kses_xml_named_entities().

This fixes a discrepancy where the the global name used in the function did not match the one declared at the beginning of `kses.php`, and ensures that the function gets the correct array of allowed XML entity names.

Includes unit tests.

Follow-up to [48072].

Props ovidiul, costdev, peterwilsoncc, SergeyBiryukov.
Fixes #54060.
Built from https://develop.svn.wordpress.org/trunk@52229


git-svn-id: http://core.svn.wordpress.org/trunk@51821 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Sergey Biryukov 2021-11-21 17:17:02 +00:00
parent c9ecd13aca
commit 1d1581b660
2 changed files with 6 additions and 6 deletions

View File

@ -459,7 +459,7 @@ if ( ! CUSTOM_TAGS ) {
); );
/** /**
* @var string[] $allowedentitynames Array of KSES allowed HTML entitity names. * @var string[] $allowedentitynames Array of KSES allowed HTML entity names.
* @since 1.0.0 * @since 1.0.0
*/ */
$allowedentitynames = array( $allowedentitynames = array(
@ -719,10 +719,10 @@ if ( ! CUSTOM_TAGS ) {
); );
/** /**
* @var string[] $allowedxmlentitynames Array of KSES allowed XML entitity names. * @var string[] $allowedxmlentitynames Array of KSES allowed XML entity names.
* @since 5.5.0 * @since 5.5.0
*/ */
$allowedxmlnamedentities = array( $allowedxmlentitynames = array(
'amp', 'amp',
'lt', 'lt',
'gt', 'gt',
@ -1906,7 +1906,7 @@ function wp_kses_named_entities( $matches ) {
* @return string Correctly encoded entity. * @return string Correctly encoded entity.
*/ */
function wp_kses_xml_named_entities( $matches ) { function wp_kses_xml_named_entities( $matches ) {
global $allowedentitynames, $allowedxmlnamedentities; global $allowedentitynames, $allowedxmlentitynames;
if ( empty( $matches[1] ) ) { if ( empty( $matches[1] ) ) {
return ''; return '';
@ -1914,7 +1914,7 @@ function wp_kses_xml_named_entities( $matches ) {
$i = $matches[1]; $i = $matches[1];
if ( in_array( $i, $allowedxmlnamedentities, true ) ) { if ( in_array( $i, $allowedxmlentitynames, true ) ) {
return "&$i;"; return "&$i;";
} elseif ( in_array( $i, $allowedentitynames, true ) ) { } elseif ( in_array( $i, $allowedentitynames, true ) ) {
return html_entity_decode( "&$i;", ENT_HTML5 ); return html_entity_decode( "&$i;", ENT_HTML5 );

View File

@ -16,7 +16,7 @@
* *
* @global string $wp_version * @global string $wp_version
*/ */
$wp_version = '5.9-alpha-52228'; $wp_version = '5.9-alpha-52229';
/** /**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.