diff --git a/classes/helpers/FrmAppHelper.php b/classes/helpers/FrmAppHelper.php index 56750c34f8..55b49d652d 100644 --- a/classes/helpers/FrmAppHelper.php +++ b/classes/helpers/FrmAppHelper.php @@ -646,17 +646,33 @@ public static function preserve_backslashes( $value ) { return $value; } + /** + * Sanitize a value in-place. + * If $value is an array, the sanitize function will get called for each item. + * + * @param callable $sanitize + * @param mixed $value + * @return void + */ public static function sanitize_value( $sanitize, &$value ) { - if ( ! empty( $sanitize ) ) { - if ( is_array( $value ) ) { - $temp_values = $value; - foreach ( $temp_values as $k => $v ) { - self::sanitize_value( $sanitize, $value[ $k ] ); - } - } else { - $value = call_user_func( $sanitize, $value ); + if ( ! $sanitize ) { + return; + } + + if ( is_object( $value ) ) { + $value = ''; + return; + } + + if ( is_array( $value ) ) { + $temp_values = $value; + foreach ( $temp_values as $k => $v ) { + self::sanitize_value( $sanitize, $value[ $k ] ); } + return; } + + $value = call_user_func( $sanitize, $value ); } public static function sanitize_request( $sanitize_method, &$values ) {