Ticket #18007: 18007.3.patch
File 18007.3.patch, 1.9 KB (added by , 12 years ago) |
---|
-
wp-includes/functions.php
245 245 * @return bool False if not serialized and true if it was. 246 246 */ 247 247 function is_serialized( $data ) { 248 static $is_overloaded; 249 250 if ( ! isset( $is_overloaded ) ) 251 $is_overloaded = ( ( ini_get( 'mbstring.func_overload' ) & 2 ) != 0 ) && function_exists( 'mb_substr' ); 252 248 253 // if it isn't a string, it isn't serialized 249 254 if ( ! is_string( $data ) ) 250 255 return false; … … 256 261 return false; 257 262 if ( ':' !== $data[1] ) 258 263 return false; 259 $lastc = $data[$length-1];264 $lastc = ( $is_overloaded ) ? substr( $data, -1 ) : $data[ $length - 1 ]; 260 265 if ( ';' !== $lastc && '}' !== $lastc ) 261 266 return false; 262 267 $token = $data[0]; 263 268 switch ( $token ) { 264 269 case 's' : 265 if ( '"' !== $data[$length-2])270 if ( '"' !== ( ( $is_overloaded ) ? substr( $data, -2, 1 ) : $data[ $length - 2 ] ) ) 266 271 return false; 267 272 case 'a' : 268 273 case 'O' : … … 284 289 * @return bool False if not a serialized string, true if it is. 285 290 */ 286 291 function is_serialized_string( $data ) { 292 static $is_overloaded; 293 294 if ( ! isset( $is_overloaded ) ) 295 $is_overloaded = ( ( ini_get( 'mbstring.func_overload' ) & 2 ) != 0 ) && function_exists( 'mb_substr' ); 296 287 297 // if it isn't a string, it isn't a serialized string 288 298 if ( !is_string( $data ) ) 289 299 return false; … … 293 303 return false; 294 304 elseif ( ':' !== $data[1] ) 295 305 return false; 296 elseif ( ';' !== $data[$length-1])306 elseif ( ';' !== ( ( $is_overloaded ) ? substr( $data, -1 ) : $data[ $length - 1 ] ) ) 297 307 return false; 298 308 elseif ( $data[0] !== 's' ) 299 309 return false; 300 elseif ( '"' !== $data[$length-2])310 elseif ( '"' !== ( ( $is_overloaded ) ? substr( $data, -2, 1 ) : $data[ $length - 2 ] ) ) 301 311 return false; 302 312 else 303 313 return true;