From acad2b4149d45632547197a24cb96f8dd7f20a95 Mon Sep 17 00:00:00 2001 From: Tonya Mork Date: Thu, 9 Sep 2021 22:55:36 +0000 Subject: [PATCH] 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. git-svn-id: https://develop.svn.wordpress.org/trunk@51793 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/functions.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/wp-includes/functions.php b/src/wp-includes/functions.php index 12de2395d7d87..f75c396328691 100644 --- a/src/wp-includes/functions.php +++ b/src/wp-includes/functions.php @@ -7618,6 +7618,10 @@ function wp_site_admin_email_change_notification( $old_email, $new_email, $optio * @return string The anonymized IP address. */ 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. $ip_prefix = ''; $is_ipv6 = substr_count( $ip_addr, ':' ) > 1;