From 4928de336456e0da512d13281d691072ac69f29b Mon Sep 17 00:00:00 2001 From: hanr881 <1741282579@qq.com> Date: Tue, 3 Dec 2024 07:15:08 +0000 Subject: [PATCH] to issue<2024112900105382231>:fix core when free rawtype obobj memory --- deps/oblib/src/common/object/ob_object.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/deps/oblib/src/common/object/ob_object.cpp b/deps/oblib/src/common/object/ob_object.cpp index 4e6d0f5d3..da4d2c927 100644 --- a/deps/oblib/src/common/object/ob_object.cpp +++ b/deps/oblib/src/common/object/ob_object.cpp @@ -1577,13 +1577,17 @@ void* ObObj::get_deep_copy_obj_ptr() ptr = (void *)v_.string_; } } else if (ob_is_raw(this->get_type())) { - ptr = (void *)v_.string_; + if (val_len_ != 0) { + ptr = (void *)v_.string_; + } } else if (ob_is_number_tc(this->get_type()) && 0 != nmb_desc_.len_ && NULL != v_.nmb_digits_) { ptr = (void *)v_.nmb_digits_; } else if (ob_is_rowid_tc(this->get_type())) { - ptr = (void *)v_.string_; + if (val_len_ != 0) { + ptr = (void *)v_.string_; + } } else if (ob_is_lob_locator(this->get_type())) { ptr = (void *)v_.lob_locator_; } else if (ob_is_decimal_int_tc(this->get_type()) && 0 != val_len_ && NULL != v_.decimal_int_) {