diff --git a/deps/oblib/src/lib/number/ob_number_v2.cpp b/deps/oblib/src/lib/number/ob_number_v2.cpp index 92ac43d23f81a297bbcad34ede81e65b84dd5574..27b8806217b9202f0d53c6c668623d3171021ce9 100644 --- a/deps/oblib/src/lib/number/ob_number_v2.cpp +++ b/deps/oblib/src/lib/number/ob_number_v2.cpp @@ -4411,7 +4411,7 @@ int ObNumber::add_v3(const ObNumber& other, ObNumber& value, ObIAllocator& alloc if (OB_SUCC(ret)) { MEMSET(sum_digits, 0, sizeof(uint32_t) * OB_CALC_BUFFER_SIZE); - MEMCPY(sum_digits + 1, augend_digits, augend_desc.len_ * sizeof(uint32_t)); + MEMCPY(sum_digits + 1, augend_digits, min(augend_desc.len_, OB_MAX_DECIMAL_DIGIT) * sizeof(uint32_t)); // inverse traversal const int64_t cur_augend_exp = augend_exp - (augend_desc.len_ - 1);