From f2bdef6f876a0375c005e92acfd1729ac6b0ea72 Mon Sep 17 00:00:00 2001 From: Mike Letellier Date: Thu, 14 Mar 2024 16:19:12 -0300 Subject: [PATCH] Update FrmAppHelper::sanitize_value to support objects --- classes/helpers/FrmAppHelper.php | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) 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 ) {