Ticket #18007: 18007.2.refreshed.patch
File 18007.2.refreshed.patch, 1.9 KB (added by , 11 years ago) |
---|
-
src/wp-includes/functions.php
251 251 */ 252 252 function is_serialized( $data, $strict = true ) { 253 253 // if it isn't a string, it isn't serialized 254 if ( ! is_string( $data ) ) 254 if ( ! is_string( $data ) ) { 255 255 return false; 256 } 256 257 $data = trim( $data ); 257 if ( 'N;' == $data ) 258 if ( 'N;' == $data ) { 258 259 return true; 259 $length = strlen( $data );260 if ( $length < 4 )260 } 261 if ( strlen( $data ) < 4 ) { 261 262 return false; 262 if ( ':' !== $data[1] ) 263 } 264 if ( ':' !== $data[1] ) { 263 265 return false; 266 } 264 267 if ( $strict ) { 265 $lastc = $data[ $length - 1 ];266 if ( ';' !== $lastc && '}' !== $lastc ) 268 $lastc = substr( $data, -1 ); 269 if ( ';' !== $lastc && '}' !== $lastc ) { 267 270 return false; 271 } 268 272 } else { 269 273 $semicolon = strpos( $data, ';' ); 270 274 $brace = strpos( $data, '}' ); … … 281 285 switch ( $token ) { 282 286 case 's' : 283 287 if ( $strict ) { 284 if ( '"' !== $data[ $length - 2 ] )288 if ( '"' !== substr( $data, -2, 1 ) ) { 285 289 return false; 290 } 286 291 } elseif ( false === strpos( $data, '"' ) ) { 287 292 return false; 288 293 } … … 309 314 */ 310 315 function is_serialized_string( $data ) { 311 316 // if it isn't a string, it isn't a serialized string 312 if ( ! is_string( $data ) )317 if ( ! is_string( $data ) ) { 313 318 return false; 319 } 314 320 $data = trim( $data ); 315 $length = strlen( $data ); 316 if ( $length < 4 ) 321 if ( strlen( $data ) < 4 ) { 317 322 return false; 318 elseif ( ':' !== $data[1] )323 } elseif ( ':' !== $data[1] ) { 319 324 return false; 320 elseif ( ';' !== $data[$length-1] )325 } elseif ( ';' !== substr( $data, -1 ) ) { 321 326 return false; 322 elseif ( $data[0] !== 's' )327 } elseif ( $data[0] !== 's' ) { 323 328 return false; 324 elseif ( '"' !== $data[$length-2] )329 } elseif ( '"' !== substr( $data, -2, 1 ) ) { 325 330 return false; 326 else331 } else { 327 332 return true; 333 } 328 334 } 329 335 330 336 /**