mirror of
https://github.com/WordPress/WordPress.git
synced 2024-12-26 02:57:45 +01:00
677e6e5b13
For certain images, `wp_exif_frac2dec()` unexpectedly returned a string instead of `int` or `float`. This can occur when an image is missing meta and calls the function with `'0/0'`. For those images, a fatal error was thrown on PHP 8.0+: {{{ TypeError: round(): Argument #1 ($num) must be of type int|float, string given }}} Upon deeper review, inconsistent and unexpected results were returned from different types of input values passed to the function. Changes are: * Maintains backwards-compatibility for valid input values. * Fixes handling of invalid input values by bailing out to return the documented type of `int|float` by returning `0`. * Improves the fractional conditional check. * Improves the calculated fraction handling to ensure (a) the numerator and denominator are both numeric and (b) the denominator is not equal to zero. * Safeguards the behavior via tests for all possible ways code could flow through the function. * Safeguards the backwards-compatibility of the `wp_read_image_metadata()` by adding some defensive coding around the calls to the `wp_exif_frac2dec()` function. These changes fix the fatal error and make the function more secure, stable, and predictable while maintaining backwards-compatibility for valid input values. Follow-up to [6313], [9119], [22319], [28367], [45611], [47287]. Props adamsilverstein, jrf, peterwilsoncc, praem90, stevegs, tobiasbg. Fixes #54385. Built from https://develop.svn.wordpress.org/trunk@52269 git-svn-id: http://core.svn.wordpress.org/trunk@51861 1a063a9b-81f0-0310-95a4-ce76da25c4cd
48 lines
939 B
PHP
48 lines
939 B
PHP
<?php
|
|
/**
|
|
* WordPress Version
|
|
*
|
|
* Contains version information for the current WordPress release.
|
|
*
|
|
* @package WordPress
|
|
* @since 1.2.0
|
|
*/
|
|
|
|
/**
|
|
* The WordPress version string.
|
|
*
|
|
* Holds the current version number for WordPress core. Used to bust caches
|
|
* and to enable development mode for scripts when running from the /src directory.
|
|
*
|
|
* @global string $wp_version
|
|
*/
|
|
$wp_version = '5.9-alpha-52269';
|
|
|
|
/**
|
|
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
|
*
|
|
* @global int $wp_db_version
|
|
*/
|
|
$wp_db_version = 51917;
|
|
|
|
/**
|
|
* Holds the TinyMCE version.
|
|
*
|
|
* @global string $tinymce_version
|
|
*/
|
|
$tinymce_version = '49110-20201110';
|
|
|
|
/**
|
|
* Holds the required PHP version.
|
|
*
|
|
* @global string $required_php_version
|
|
*/
|
|
$required_php_version = '5.6.20';
|
|
|
|
/**
|
|
* Holds the required MySQL version.
|
|
*
|
|
* @global string $required_mysql_version
|
|
*/
|
|
$required_mysql_version = '5.0';
|