Code Modernization: Fix null to non-nullable deprecation in `wp_privacy_anonymize_ip()`.

The `wp_privacy_anonymize_ip()` function expects a string for the `$ip_addr` parameter, but did not do any input validation.

One of the pre-existing test cases, passed `null` to the function, leading to a `substr_count(): Passing null to parameter #1 ($haystack) of type string is deprecated` notice on PHP 8.1.

Fixed now by doing a cursory check on the variable at the start of the function and bowing out early for a number of cases (`null`, `false`, `0`, `''`) which would all result in the same `0.0.0.0` output anyway.

Follow-up [42971].

Props jrf, hellofromTonya.
See #53635.
Built from https://develop.svn.wordpress.org/trunk@51793


git-svn-id: http://core.svn.wordpress.org/trunk@51400 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
hellofromTonya 2021-09-09 22:56:56 +00:00
parent 78b5f27b1e
commit b8322a053e
2 changed files with 5 additions and 1 deletions

View File

@ -7618,6 +7618,10 @@ All at ###SITENAME###
* @return string The anonymized IP address. * @return string The anonymized IP address.
*/ */
function wp_privacy_anonymize_ip( $ip_addr, $ipv6_fallback = false ) { function wp_privacy_anonymize_ip( $ip_addr, $ipv6_fallback = false ) {
if ( empty( $ip_addr ) ) {
return '0.0.0.0';
}
// Detect what kind of IP address this is. // Detect what kind of IP address this is.
$ip_prefix = ''; $ip_prefix = '';
$is_ipv6 = substr_count( $ip_addr, ':' ) > 1; $is_ipv6 = substr_count( $ip_addr, ':' ) > 1;

View File

@ -13,7 +13,7 @@
* *
* @global string $wp_version * @global string $wp_version
*/ */
$wp_version = '5.9-alpha-51792'; $wp_version = '5.9-alpha-51793';
/** /**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.