Sitemaps: Prevent invalid provider names throwing errors.

Validate the requested sitemap is a string before attempting to use it in a provider. This prevents `WP_Sitemaps_Registry::get_provider()` from triggering a fatal error in more recent versions of PHP.

The errors can be triggered by items outside the site owner or developers control (such as a user visiting `?sitemap[foo]=bar`) so the code fails silently to avoid filling error logs with unfixable errors.

Props costdev, dd32.
Fixes #56336.

Built from https://develop.svn.wordpress.org/trunk@53838


git-svn-id: http://core.svn.wordpress.org/trunk@53397 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Peter Wilson 2022-08-05 05:49:11 +00:00
parent 301ac6bf38
commit 6219eb95bf
2 changed files with 2 additions and 2 deletions

View File

@ -65,7 +65,7 @@ class WP_Sitemaps_Registry {
* @return WP_Sitemaps_Provider|null Sitemap provider if it exists, null otherwise. * @return WP_Sitemaps_Provider|null Sitemap provider if it exists, null otherwise.
*/ */
public function get_provider( $name ) { public function get_provider( $name ) {
if ( ! isset( $this->providers[ $name ] ) ) { if ( ! is_string( $name ) || ! isset( $this->providers[ $name ] ) ) {
return null; return null;
} }

View File

@ -16,7 +16,7 @@
* *
* @global string $wp_version * @global string $wp_version
*/ */
$wp_version = '6.1-alpha-53837'; $wp_version = '6.1-alpha-53838';
/** /**
* 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.