WordPress.org

Make WordPress Core

Ticket #14429: 14429.2.patch

File 14429.2.patch, 1.4 KB (added by hakre, 8 years ago)

no need for strpbrk checks; fix style/ws

  • wp-includes/functions.php

     
    229229 */
    230230function is_serialized( $data ) {
    231231        // if it isn't a string, it isn't serialized
    232         if ( !is_string( $data ) )
     232        if ( !is_string( $data ) ) {
    233233                return false;
     234        }
     235
    234236        $data = trim( $data );
    235         if ( 'N;' == $data )
     237
     238        if ( 'N;' === $data ) {
    236239                return true;
    237         if ( function_exists('strpbrk') ) {
    238                 if ( strlen($data) > 1 && strpbrk($data,'adObis') == $data && $data[1] == ':' ) {
    239                         $badions = array();
    240                         $badions[1] = $data[0];
    241                 } else {
    242                         return false;
    243                 }
    244         } elseif ( !preg_match( '/^([adObis]):/', $data, $badions ) ) {
     240        }
     241
     242        $has_token = (
     243                strlen( $data ) > 3
     244                && ':' === $data[1]
     245                && ( $token = $data[0] )
     246                && false !== strpos( 'adObis', $token )
     247        );
     248
     249        if ( !$has_token ) {
    245250                return false;
    246251        }
    247         switch ( $badions[1] ) {
     252
     253        switch ( $token ) {
    248254                case 'a' :
    249255                case 'O' :
    250256                case 's' :
    251                         if ( preg_match( "/^{$badions[1]}:[0-9]+:.*[;}]\$/s", $data ) )
     257                        if ( preg_match( "/^{$token}:[0-9]+:.*[;}]\$/s", $data ) ) {
    252258                                return true;
     259                        }
    253260                        break;
    254261                case 'b' :
    255262                case 'i' :
    256263                case 'd' :
    257                         if ( preg_match( "/^{$badions[1]}:[0-9.E-]+;\$/", $data ) )
     264                        if ( preg_match( "/^{$token}:[0-9.E-]+;\$/", $data ) ) {
    258265                                return true;
     266                        }
    259267                        break;
    260268        }
    261269        return false;