Ticket #14429: 14429-strpbrk.5.patch
| File 14429-strpbrk.5.patch, 1.5 KB (added by , 15 years ago) |
|---|
-
wp-includes/functions.php
228 228 * @return bool False if not serialized and true if it was. 229 229 */ 230 230 function is_serialized( $data ) { 231 static $strpbrk_exists; 231 232 // if it isn't a string, it isn't serialized 232 233 if ( !is_string( $data ) ) 233 234 return false; 234 235 $data = trim( $data ); 235 236 if ( 'N;' == $data ) 236 237 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 ) ) { 238 if ( strlen( $data ) < 4 ) 245 239 return false; 240 $token = $data[0]; 241 isset( $strpbrk_exists ) || $strpbrk_exists = function_exists( 'strpbrk' ); 242 if ( $strpbrk_exists && ( ':' !== $data[1] || strpbrk( $data, 'adObis' ) !== $data ) ) { 243 return false; 244 } elseif ( !preg_match( '/^([adObis]):/', $data ) ) { 245 return false; 246 246 } 247 switch ( $ badions[1]) {247 switch ( $token ) { 248 248 case 'a' : 249 249 case 'O' : 250 250 case 's' : 251 if ( preg_match( "/^{$ badions[1]}:[0-9]+:.*[;}]\$/s", $data ) )251 if ( preg_match( "/^{$token}:[0-9]+:.*[;}]\$/s", $data ) ) 252 252 return true; 253 253 break; 254 254 case 'b' : 255 255 case 'i' : 256 256 case 'd' : 257 if ( preg_match( "/^{$ badions[1]}:[0-9.E-]+;\$/", $data ) )257 if ( preg_match( "/^{$token}:[0-9.E-]+;\$/", $data ) ) 258 258 return true; 259 259 break; 260 260 }