From 0c8bc404d70c7bc31c8211e32a33e7b85aeb3d45 Mon Sep 17 00:00:00 2001 From: jg0 Date: Wed, 9 Feb 2022 16:36:57 +0800 Subject: [PATCH] fix coredump caused by oceanbase::sql::ObExprUtlInaddrGetHostName::calc_result1 --- deps/oblib/src/lib/alloc/malloc_hook.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/deps/oblib/src/lib/alloc/malloc_hook.cpp b/deps/oblib/src/lib/alloc/malloc_hook.cpp index cac584bf2e..3334f1c9c6 100644 --- a/deps/oblib/src/lib/alloc/malloc_hook.cpp +++ b/deps/oblib/src/lib/alloc/malloc_hook.cpp @@ -177,11 +177,24 @@ void *ob_memalign_hook(size_t alignment, size_t size, const void *) #define MALLOC_HOOK_MAYBE_VOLATILE __MALLOC_HOOK_VOLATILE #endif -extern "C" { +EXTERN_C_BEGIN + __attribute__((visibility("default"))) void *(*MALLOC_HOOK_MAYBE_VOLATILE __malloc_hook)(size_t, const void *) = ob_malloc_hook; __attribute__((visibility("default"))) void (*MALLOC_HOOK_MAYBE_VOLATILE __free_hook)(void *, const void *) = ob_free_hook; __attribute__((visibility("default"))) void *(*MALLOC_HOOK_MAYBE_VOLATILE __realloc_hook)(void *, size_t, const void *) = ob_realloc_hook; __attribute__((visibility("default"))) void *(*MALLOC_HOOK_MAYBE_VOLATILE __memalign_hook)(size_t, size_t, const void *) = ob_memalign_hook; + +size_t malloc_usable_size(void *ptr) +{ + size_t ret = 0; + if (OB_LIKELY(ptr != nullptr)) { + auto *header = Header::ptr2header(ptr); + abort_unless(header->check_magic_code()); + ret = header->data_size_; + } + return ret; } +EXTERN_C_END + void init_malloc_hook() {}