From 2b99f6daef81f224f63b12ac6d4f9e16925a4b4c Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Thu, 7 Nov 2024 23:45:40 +0000 Subject: [PATCH] Coding Standards: Ensure `$current` cookie time is `int` in `wp_user_settings()`. This addresses an issue where a string (`$current`) is compared to an integer (`$last_saved`). The issue is resolved by casting the results of `preg_replace()` to type `int` when `$current` is defined. Follow-up to [8784], [10083], [25109]. Props justlevine. See #52217. git-svn-id: https://develop.svn.wordpress.org/trunk@59373 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/option.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/wp-includes/option.php b/src/wp-includes/option.php index 270b78ca1bf53..c84f1660f931b 100644 --- a/src/wp-includes/option.php +++ b/src/wp-includes/option.php @@ -1700,7 +1700,11 @@ function wp_user_settings() { } $last_saved = (int) get_user_option( 'user-settings-time', $user_id ); - $current = isset( $_COOKIE[ 'wp-settings-time-' . $user_id ] ) ? preg_replace( '/[^0-9]/', '', $_COOKIE[ 'wp-settings-time-' . $user_id ] ) : 0; + $current = 0; + + if ( isset( $_COOKIE[ 'wp-settings-time-' . $user_id ] ) ) { + $current = (int) preg_replace( '/[^0-9]/', '', $_COOKIE[ 'wp-settings-time-' . $user_id ] ); + } // The cookie is newer than the saved value. Update the user_option and leave the cookie as-is. if ( $current > $last_saved ) {