Ticket #14429: 14429-strpbrk.7.patch
| File 14429-strpbrk.7.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 if ( ':' !== $data[1] ) 241 return false; 242 $token = $data[0]; 243 isset( $strpbrk_exists ) || $strpbrk_exists = function_exists( 'strpbrk' ); 244 if ( $strpbrk_exists && strpbrk( $data, 'adObis' ) !== $data ) { 245 return false; 246 } elseif ( false === strpos( 'adObis', $token ) ) { 247 return false; 246 248 } 247 switch ( $ badions[1]) {249 switch ( $token ) { 248 250 case 'a' : 249 251 case 'O' : 250 252 case 's' : 251 if ( preg_match( "/^{$ badions[1]}:[0-9]+:.*[;}]\$/s", $data ) )253 if ( preg_match( "/^{$token}:[0-9]+:.*[;}]\$/s", $data ) ) 252 254 return true; 253 255 break; 254 256 case 'b' : 255 257 case 'i' : 256 258 case 'd' : 257 if ( preg_match( "/^{$ badions[1]}:[0-9.E-]+;\$/", $data ) )259 if ( preg_match( "/^{$token}:[0-9.E-]+;\$/", $data ) ) 258 260 return true; 259 261 break; 260 262 }