From c57bbe794902d5cc99610bdac3082c6d842b272a Mon Sep 17 00:00:00 2001 From: br0 Date: Fri, 17 Sep 2021 15:39:33 +0800 Subject: [PATCH] Fix greatest and least functions for bit type --- src/share/object/ob_obj_cast_util.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/share/object/ob_obj_cast_util.h b/src/share/object/ob_obj_cast_util.h index 73b0f0b845..2fddcc2660 100644 --- a/src/share/object/ob_obj_cast_util.h +++ b/src/share/object/ob_obj_cast_util.h @@ -26,10 +26,12 @@ OB_INLINE int numeric_range_check( const InType in_val, const OutType min_out_val, const OutType max_out_val, OutType& out_val) { int ret = OB_SUCCESS; - if (in_val < static_cast(min_out_val)) { + // Casting value from InType to OutType to prevent number overflow. + OutType cast_in_val = static_cast(in_val); + if (cast_in_val < min_out_val) { ret = OB_DATA_OUT_OF_RANGE; out_val = min_out_val; - } else if (in_val > static_cast(max_out_val)) { + } else if (cast_in_val > max_out_val) { ret = OB_DATA_OUT_OF_RANGE; out_val = max_out_val; } -- GitLab