From e3a467a55a7f816d88f87926bc0356f67bd53282 Mon Sep 17 00:00:00 2001 From: desrosj Date: Mon, 2 Nov 2020 19:13:07 +0000 Subject: [PATCH] Upgrade/Install: Prevent removal of additional data from plugin update info. This switches to using `wp_parse_args()` instead of a combination of `array_merge()` and `array_intersect_key()` when ensuring that all expected default keys are present in the update information for a plugin. This prevents non-default data returned by 3rd-party plugins from being unintentionally stripped out. Props peterwilsoncc, chriscct7. Fixes #51609. Built from https://develop.svn.wordpress.org/trunk@49477 git-svn-id: http://core.svn.wordpress.org/trunk@49236 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/includes/class-wp-debug-data.php | 2 +- wp-admin/includes/class-wp-plugins-list-table.php | 2 +- wp-includes/version.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/wp-admin/includes/class-wp-debug-data.php b/wp-admin/includes/class-wp-debug-data.php index 0419aa4cdf..1f3ebf8f0b 100644 --- a/wp-admin/includes/class-wp-debug-data.php +++ b/wp-admin/includes/class-wp-debug-data.php @@ -974,7 +974,7 @@ class WP_Debug_Data { 'requires_php' => '', 'compatibility' => new stdClass(), ); - $item = array_merge( $item, array_intersect_key( $plugin, $item ) ); + $item = wp_parse_args( $plugin, $item ); } $auto_update_forced = wp_is_auto_update_forced_for_item( 'plugin', null, (object) $item ); diff --git a/wp-admin/includes/class-wp-plugins-list-table.php b/wp-admin/includes/class-wp-plugins-list-table.php index b1917bac31..830724c59b 100644 --- a/wp-admin/includes/class-wp-plugins-list-table.php +++ b/wp-admin/includes/class-wp-plugins-list-table.php @@ -230,7 +230,7 @@ class WP_Plugins_List_Table extends WP_List_Table { 'compatibility' => new stdClass(), ); - $filter_payload = (object) array_merge( $filter_payload, array_intersect_key( $plugin_data, $filter_payload ) ); + $filter_payload = (object) wp_parse_args( $plugin_data, $filter_payload ); $auto_update_forced = wp_is_auto_update_forced_for_item( 'plugin', null, $filter_payload ); diff --git a/wp-includes/version.php b/wp-includes/version.php index e39cec0fb5..0caf46fc3d 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -13,7 +13,7 @@ * * @global string $wp_version */ -$wp_version = '5.6-beta2-49476'; +$wp_version = '5.6-beta2-49477'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.