| @@ -18,12 +18,12 @@ | ||
| 18 | 18 | * |
| 19 | 19 | * @return mixed |
| 20 | 20 | */ |
| 21 | 21 | public static function maybe_unserialize( $string ) { |
| 22 | - if ( is_string( $string ) ) { | |
| 23 | - | |
| 24 | - $unserialized = maybe_unserialize( $string ); | |
| 25 | - if ( ! $unserialized && strlen( $string ) ) { | |
| 22 | + if ( is_string( $string ) && is_serialized( $string ) ) { | |
| 23 | + $string = trim( $string ); | |
| 24 | + $unserialized = @unserialize( $string, array( 'allowed_classes' => false ) ); | |
| 25 | + if ( false === $unserialized && 'b:0;' !== $string ) { | |
| 26 | 26 | $string = preg_replace_callback( |
| 27 | 27 | '!s:(\d+):"(.*?)";!s', |
| 28 | 28 | array( __CLASS__, '_unserialize_replace_callback' ), |
| 29 | 29 | $string |
| @@ -28,9 +28,9 @@ | ||
| 28 | 28 | array( __CLASS__, '_unserialize_replace_callback' ), |
| 29 | 29 | $string |
| 30 | 30 | ); |
| 31 | 31 | |
| 32 | - $unserialized = maybe_unserialize( $string ); | |
| 32 | + $unserialized = @unserialize( $string, array( 'allowed_classes' => false ) ); | |
| 33 | 33 | } |
| 34 | 34 | |
| 35 | 35 | $string = $unserialized; |
| 36 | 36 | } |
| @@ -353,8 +353,11 @@ | ||
| 353 | 353 | $value = (int) $value; |
| 354 | 354 | break; |
| 355 | 355 | case 'float': |
| 356 | 356 | $value = (float) $value; |
| 357 | + break; | |
| 358 | + case 'email': | |
| 359 | + $value = sanitize_email( $value ); | |
| 357 | 360 | break; |
| 358 | 361 | default: |
| 359 | 362 | if ( is_callable( $type_content ) ) { |
| 360 | 363 | $value = call_user_func( $type_content, $value ); |