WordPress.org

Make WordPress Core

Ticket #14184: 14184.diff

File 14184.diff, 2.7 KB (added by jacobsantos, 4 years ago)

Patch which tests for strings when required and comments areas where it is not.

  • class-http.php

     
    434434                $cookies = array(); 
    435435                $newheaders = array(); 
    436436                foreach ( $headers as $tempheader ) { 
     437                        // Sanity check, this should never be true, but prevents no lines from processing. Also 
     438                        // the rare event that there are lines in between the headers that are empty. 
    437439                        if ( empty($tempheader) ) 
    438440                                continue; 
    439441 
     
    443445                        } 
    444446 
    445447                        list($key, $value) = explode(':', $tempheader, 2); 
     448                        $value = trim( $value ); // Remove spaces before and after for the value. 
    446449 
    447                         if ( !empty( $value ) ) { 
     450                        if ( $value != "" ) { 
    448451                                $key = strtolower( $key ); 
    449452                                if ( isset( $newheaders[$key] ) ) { 
    450453                                        if ( !is_array($newheaders[$key]) ) 
    451454                                                $newheaders[$key] = array($newheaders[$key]); 
    452                                         $newheaders[$key][] = trim( $value ); 
     455                                        $newheaders[$key][] = $value; 
    453456                                } else { 
    454                                         $newheaders[$key] = trim( $value ); 
     457                                        $newheaders[$key] = $value; 
    455458                                } 
    456459                                if ( 'set-cookie' == $key ) 
    457460                                        $cookies[] = new WP_Http_Cookie( $value ); 
     
    491494         * Based off the HTTP http_encoding_dechunk function. Does not support UTF-8. Does not support 
    492495         * returning footer headers. Shouldn't be too difficult to support it though. 
    493496         * 
     497         * @link http://tools.ietf.org/html/rfc2616#section-19.4.6 Process for chunked decoding. 
     498         * 
    494499         * @todo Add support for footer chunked headers. 
    495500         * @access public 
    496501         * @since 2.7.0 
     
    512517                        $hasChunk = (bool) preg_match( '/^([0-9a-f]+)(\s|\n)+/mi', $body, $match ); 
    513518 
    514519                        if ( $hasChunk ) { 
     520                                // http://tools.ietf.org/html/rfc2616#page-14 - Augmented BNF states what *rule 
     521                                // Means and the chunked encoding http://tools.ietf.org/html/rfc2616#section-3.6.1 
     522                                // defined says that only one HEX character is required. In many cases during 
     523                                // testing, the last HEX digit will be '0' and will match. If not, then nothing 
     524                                // will be adversely affected. 
    515525                                if ( empty( $match[1] ) ) 
    516526                                        return $body; 
    517527 
     
    17351745                        // Set everything else as a property 
    17361746                        foreach ( $pairs as $pair ) { 
    17371747                                $pair = rtrim($pair); 
    1738                                 if ( empty($pair) ) //Handles the cookie ending in ; which results in a empty final pair 
     1748                                if ( $pair == "" ) //Handles the cookie ending in ; which results in a empty final pair 
    17391749                                        continue; 
    17401750 
    17411751                                list( $key, $val ) = strpos( $pair, '=' ) ? explode( '=', $pair ) : array( $pair, '' ); 
     
    18141824         * @return string Header encoded cookie name and value. 
    18151825         */ 
    18161826        function getHeaderValue() { 
    1817                 if ( empty( $this->name ) || empty( $this->value ) ) 
     1827                if ( empty( $this->name ) || $this->value == '' ) 
    18181828                        return ''; 
    18191829 
    18201830                return $this->name . '=' . urlencode( $this->value );