WordPress.org

Make WordPress Core

Ticket #30128: 30128.2.patch

File 30128.2.patch, 1.6 KB (added by jorbin, 5 years ago)
  • src/wp-includes/pluggable.php

     
    284284                // If it's actually got contents
    285285                if ( !empty( $tempheaders ) ) {
    286286                        // Iterate through the raw headers
    287                         foreach ( (array) $tempheaders as $header ) {
     287                        foreach ( (array) $tempheaders as $key => $header ) {
    288288                                if ( strpos($header, ':') === false ) {
    289289                                        if ( false !== stripos( $header, 'boundary=' ) ) {
    290290                                                $parts = preg_split('/boundary=/i', trim( $header ) );
    291291                                                $boundary = trim( str_replace( array( "'", '"' ), '', $parts[1] ) );
    292292                                        }
    293                                         continue;
     293                                        if ( is_numeric ( $key ) ) {
     294                                                continue;
     295                                        }
    294296                                }
    295297                                // Explode them out
    296                                 list( $name, $content ) = explode( ':', trim( $header ), 2 );
     298                                list( $name, $content ) = ( is_numeric ( $key ) ) ? explode( ':', trim( $header ), 2 ) : array ( $key, $header );
    297299
    298300                                // Cleanup crew
    299301                                $name    = trim( $name    );
     
    337339                                                }
    338340                                                break;
    339341                                        case 'cc':
    340                                                 $cc = array_merge( (array) $cc, explode( ',', $content ) );
    341                                                 break;
     342                                                $cc = array_merge(
     343                                                        (array) $cc,
     344                                                        ( is_array ( $content ) ) ? $content : explode( ',', $content )
     345                                                );
    342346                                        case 'bcc':
    343                                                 $bcc = array_merge( (array) $bcc, explode( ',', $content ) );
    344                                                 break;
     347                                                $bcc = array_merge(
     348                                                        (array) $bcc,
     349                                                        ( is_array ( $content ) ) ? $content : explode( ',', $content )
     350                                                );
    345351                                        default:
    346352                                                // Add it to our grand headers array
    347353                                                $headers[trim( $name )] = trim( $content );