Make WordPress Core

Ticket #64256: 64256.patch

File 64256.patch, 1.3 KB (added by swissky, 6 months ago)

Patch Update

  • wp-includes/functions.php

     
    38863886                $message  .= "\n<p><a href='javascript:history.back()'>$back_text</a></p>";
    38873887        }
    38883888
     3889        // Ensure HTTP 500 status code for critical errors, even if headers were already sent.
     3890        // Check for fatal errors using error code 'internal_server_error' (language-independent).
     3891        $is_critical_error = false;
     3892        if ( function_exists( 'is_wp_error' ) && is_wp_error( $message ) ) {
     3893                $error_code = $message->get_error_code();
     3894                $is_critical_error = ( 'internal_server_error' === $error_code );
     3895        } elseif ( 'internal_server_error' === $parsed_args['code'] ) {
     3896                $is_critical_error = true;
     3897        }
     3898
     3899        // Also ensure HTTP 500 if response is already set to 500 (from fatal error handler).
     3900        if ( $is_critical_error || 500 === $parsed_args['response'] ) {
     3901                $parsed_args['response'] = 500;
     3902                // Set HTTP status code even if headers were already sent.
     3903                if ( function_exists( 'http_response_code' ) ) {
     3904                        http_response_code( 500 );
     3905                }
     3906        }
     3907
    38893908        if ( ! did_action( 'admin_head' ) ) :
    38903909                if ( ! headers_sent() ) {
    38913910                        header( "Content-Type: text/html; charset={$parsed_args['charset']}" );