From ff04bb001705477e8b3276f9569454a4fc326504 Mon Sep 17 00:00:00 2001 From: Tonya Mork Date: Fri, 12 Nov 2021 01:08:35 +0000 Subject: [PATCH] Bootstrap/Load: Check `$_SERVER['SCRIPT_NAME']` exists before passing to `strpos()` in `wp_fix_server_vars()`. If `SCRIPT_NAME'` does not exist (which can happen in cron jobs), the following happens: * PHP 8.1+: * `Warning: Undefined array key "SCRIPT_NAME"` * `Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated` * PHP 8.0: `Warning: Undefined array key "SCRIPT_NAME"` * PHP 5.6-7.4: No warning or notice This commit checks if the key exists before passing it to `strpos()`. This resolves the warning, notice, and future error. Follow-up to [3034], [3069], [12732]. Props audrasjb, costdev, hellofromTonya, karpstrucking, mcjambi, sergeybiryukov. Fixes #54142. git-svn-id: https://develop.svn.wordpress.org/trunk@52144 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/load.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wp-includes/load.php b/src/wp-includes/load.php index d2e7f47c4f..60ce480656 100644 --- a/src/wp-includes/load.php +++ b/src/wp-includes/load.php @@ -76,7 +76,7 @@ function wp_fix_server_vars() { } // Fix for Dreamhost and other PHP as CGI hosts. - if ( strpos( $_SERVER['SCRIPT_NAME'], 'php.cgi' ) !== false ) { + if ( isset( $_SERVER['SCRIPT_NAME'] ) && ( strpos( $_SERVER['SCRIPT_NAME'], 'php.cgi' ) !== false ) ) { unset( $_SERVER['PATH_INFO'] ); }