Media: Conditionally pass 2nd parameter to getimagesize().

In the wrapper function `wp_getimagesize()` check if the second parameter was passed before sending it to the PHP function `getimagesize()`.

The PHP function has a different execution path depending on the number of parameters passed, this ensures the wrapper function follows the appropriate path.

Follow up to [50552].
Props azaozz, hellofromtonya, Mista-Flo, peterwilsoncc, rinatkhaziev, RogerTheriault, SergeyBiryukov, terriann, whyisjake.
Merges [50586] to the 5.7 branch.
Fixes #52826.


git-svn-id: https://develop.svn.wordpress.org/branches/5.7@50662 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Peter Wilson 2021-04-06 03:42:02 +00:00
parent 96cfff96be
commit e95c8136bf

View File

@ -4982,7 +4982,11 @@ function wp_getimagesize( $filename, array &$image_info = null ) {
// Return without silencing errors when in debug mode.
defined( 'WP_DEBUG' ) && WP_DEBUG
) {
return getimagesize( $filename, $image_info );
if ( 2 === func_num_args() ) {
return getimagesize( $filename, $image_info );
} else {
return getimagesize( $filename );
}
}
/*
@ -4993,8 +4997,12 @@ function wp_getimagesize( $filename, array &$image_info = null ) {
* even when it's able to provide image size information.
*
* See https://core.trac.wordpress.org/ticket/42480
*
* phpcs:ignore WordPress.PHP.NoSilencedErrors
*/
return @getimagesize( $filename, $image_info );
if ( 2 === func_num_args() ) {
// phpcs:ignore WordPress.PHP.NoSilencedErrors
return @getimagesize( $filename, $image_info );
} else {
// phpcs:ignore WordPress.PHP.NoSilencedErrors
return @getimagesize( $filename );
}
}