From 26c97303099bd9b41fb420a866c373647bcad543 Mon Sep 17 00:00:00 2001 From: Tonya Mork Date: Tue, 9 Nov 2021 22:58:39 +0000 Subject: [PATCH] HTTP API: Ensure value returned from `'http_allowed_safe_ports'` is an array to avoid PHP 8+ TypeError fatal error. Adds an `is_array()` check before the `in_array()`. Why? `in_array()` requires a array for the haystack. Any other data type will cause a fatal error on PHP 8.0 or higher: {{{ Fatal error: Uncaught TypeError: in_array(): Argument #2 ($haystack) must be of type array }}} As this is a new filter, this type check properly guards to avoid the fatal error. Follow-up to [52084]. See #54331. git-svn-id: https://develop.svn.wordpress.org/trunk@52085 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/http.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wp-includes/http.php b/src/wp-includes/http.php index 8dfa62cd207ee..d76298368f9e5 100644 --- a/src/wp-includes/http.php +++ b/src/wp-includes/http.php @@ -593,7 +593,7 @@ function wp_http_validate_url( $url ) { * @param string $url Requested URL. */ $allowed_ports = apply_filters( 'http_allowed_safe_ports', array( 80, 443, 8080 ), $host, $url ); - if ( in_array( $port, $allowed_ports, true ) ) { + if ( is_array( $allowed_ports ) && in_array( $port, $allowed_ports, true ) ) { return $url; }