From 2cc6bb80ef8c784292f2840930da1a3ca51f84bb Mon Sep 17 00:00:00 2001 From: Peter Wilson Date: Wed, 18 Sep 2024 22:37:15 +0000 Subject: [PATCH] Date/Time, PHP Compat: Prevent type errors using GMT offset option. Prevents a potential type errors when making use of the `gmt_offset` option by casting the value to a float prior to performing calculations with the value. This mainly accounts for incorrect storage of values, such as an empty string or city name. Follow up to [58923]. Props chaion07, hellofromtonya, kirasong, mhshohel, mukesh27, nicolefurlan, nihar007, nurielmeni, oglekler, peterwilsoncc, prionkor, rajinsharwar, rarst, rleeson, sabernhardt, SergeyBiryukov, swissspidy, toastercookie, verygoode. Fixes #56358, #58986, #60629. Built from https://develop.svn.wordpress.org/trunk@59064 git-svn-id: http://core.svn.wordpress.org/trunk@58460 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/update-core.php | 2 +- wp-includes/bookmark-template.php | 2 +- .../rest-api/endpoints/class-wp-rest-posts-controller.php | 2 +- wp-includes/version.php | 2 +- wp-mail.php | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/wp-admin/update-core.php b/wp-admin/update-core.php index 3e48bae0da..b41f7285dc 100644 --- a/wp-admin/update-core.php +++ b/wp-admin/update-core.php @@ -1096,7 +1096,7 @@ if ( 'upgrade-core' === $action ) { $current = get_site_transient( 'update_core' ); if ( $current && isset( $current->last_checked ) ) { - $last_update_check = $current->last_checked + get_option( 'gmt_offset' ) * HOUR_IN_SECONDS; + $last_update_check = $current->last_checked + (int) ( (float) get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ); } echo '

'; diff --git a/wp-includes/bookmark-template.php b/wp-includes/bookmark-template.php index d5878887d9..af48fbfdca 100644 --- a/wp-includes/bookmark-template.php +++ b/wp-includes/bookmark-template.php @@ -90,7 +90,7 @@ function _walk_bookmarks( $bookmarks, $args = '' ) { __( 'Last updated: %s' ), gmdate( get_option( 'links_updated_date_format' ), - $bookmark->link_updated_f + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) + $bookmark->link_updated_f + (int) ( (float) get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) ) ); $title .= ')'; diff --git a/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php b/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php index 8aec375bc8..d1938872ed 100644 --- a/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php +++ b/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php @@ -1816,7 +1816,7 @@ class WP_REST_Posts_Controller extends WP_REST_Controller { * with the site's timezone offset applied. */ if ( '0000-00-00 00:00:00' === $post->post_modified_gmt ) { - $post_modified_gmt = gmdate( 'Y-m-d H:i:s', strtotime( $post->post_modified ) - ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) ); + $post_modified_gmt = gmdate( 'Y-m-d H:i:s', strtotime( $post->post_modified ) - (int) ( (float) get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) ); } else { $post_modified_gmt = $post->post_modified_gmt; } diff --git a/wp-includes/version.php b/wp-includes/version.php index 87e3028830..de1d58f1aa 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.7-alpha-59063'; +$wp_version = '6.7-alpha-59064'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. diff --git a/wp-mail.php b/wp-mail.php index c405f6969e..7b18dd4ad1 100644 --- a/wp-mail.php +++ b/wp-mail.php @@ -44,7 +44,7 @@ if ( $last_checked ) { set_transient( 'mailserver_last_checked', true, WP_MAIL_INTERVAL ); -$time_difference = get_option( 'gmt_offset' ) * HOUR_IN_SECONDS; +$time_difference = (int) ( (float) get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ); $phone_delim = '::';