From f109aa24366b63dc240df4b274ee7d5a5d0dec64 Mon Sep 17 00:00:00 2001 From: stesen Date: Sun, 20 Mar 2022 14:44:24 +0800 Subject: [PATCH] fix asan build and typo Signed-off-by: stesen Change-Id: I1bed2cf384f82e08ee4b805ae3f890c7693bf2b5 --- porting/linux/user/src/hook/musl_preinit.c | 12 +++++----- .../linux/user/src/hook/musl_preinit_common.h | 24 ++++++++++++++++--- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/porting/linux/user/src/hook/musl_preinit.c b/porting/linux/user/src/hook/musl_preinit.c index 57a0bf12..22918f0e 100644 --- a/porting/linux/user/src/hook/musl_preinit.c +++ b/porting/linux/user/src/hook/musl_preinit.c @@ -40,7 +40,7 @@ static struct MallocDispatchType __ohos_malloc_hook_init_dispatch = { static char *__malloc_hook_shared_lib = "libnative_hook.z.so"; static char *__malloc_hook_function_prefix = "ohos_malloc_hook"; static char *__get_param_shared_Lib = "libparam_client.z.so"; -volatile atomic_llong ohos_malloc_hook_shared_liibrary; +volatile atomic_llong ohos_malloc_hook_shared_library; void* function_of_shared_lib[LAST_FUNCTION]; static enum EnumHookMode __hook_mode = STEP_HOOK_MODE; static char __hook_process_path[PATH_MAX+ 1] = {0}; @@ -270,7 +270,7 @@ static bool is_empty_string(const char* str) static void install_ohos_malloc_hook(struct musl_libc_globals* globals) { - volatile void* shared_library_handle = (volatile void *)atomic_load_explicit(&ohos_malloc_hook_shared_liibrary, memory_order_acquire); + volatile void* shared_library_handle = (volatile void *)atomic_load_explicit(&ohos_malloc_hook_shared_library, memory_order_acquire); assert(shared_library_handle == NULL || shared_library_handle == (volatile void*)-1); shared_library_handle = (volatile void*)load_malloc_hook_shared_library(__malloc_hook_shared_lib, __malloc_hook_function_prefix, &globals->malloc_dispatch_table); if (shared_library_handle == NULL) { @@ -279,11 +279,11 @@ static void install_ohos_malloc_hook(struct musl_libc_globals* globals) } if (finish_install_ohos_malloc_hooks(globals, NULL, __malloc_hook_function_prefix)) { - atomic_store_explicit(&ohos_malloc_hook_shared_liibrary, (volatile long long)shared_library_handle, memory_order_seq_cst); + atomic_store_explicit(&ohos_malloc_hook_shared_library, (volatile long long)shared_library_handle, memory_order_seq_cst); } else { // __musl_log(__MUSL_LOG_ERROR, "finish_install_ohos_malloc_hooks failed\n"); dlclose((void *)shared_library_handle); - atomic_store_explicit(&ohos_malloc_hook_shared_liibrary, (volatile long long)0, memory_order_seq_cst); + atomic_store_explicit(&ohos_malloc_hook_shared_library, (volatile long long)0, memory_order_seq_cst); } } @@ -319,11 +319,11 @@ static void __install_malloc_hook() { atomic_store_explicit(&__hook_enable_hook_flag, (volatile bool)true, memory_order_seq_cst); - volatile void* shared_library_handle = (volatile void* )atomic_load_explicit(&ohos_malloc_hook_shared_liibrary, memory_order_acquire); + volatile void* shared_library_handle = (volatile void* )atomic_load_explicit(&ohos_malloc_hook_shared_library, memory_order_acquire); if (shared_library_handle == NULL) { if (__hook_mode == STEP_HOOK_MODE) { atomic_store_explicit(&__musl_libc_globals.current_dispatch_table, (volatile const long long)&__ohos_malloc_hook_init_dispatch, memory_order_seq_cst); - atomic_store_explicit(&ohos_malloc_hook_shared_liibrary, (volatile long long)-1, memory_order_seq_cst); + atomic_store_explicit(&ohos_malloc_hook_shared_library, (volatile long long)-1, memory_order_seq_cst); } else { init_ohos_malloc_hook(); } diff --git a/porting/linux/user/src/hook/musl_preinit_common.h b/porting/linux/user/src/hook/musl_preinit_common.h index b3920f58..b6deb70c 100644 --- a/porting/linux/user/src/hook/musl_preinit_common.h +++ b/porting/linux/user/src/hook/musl_preinit_common.h @@ -27,8 +27,10 @@ enum EnumHookMode { STEP_HOOK_MODE, }; +#ifdef HOOK_ENABLE extern void* function_of_shared_lib[]; -extern volatile atomic_llong ohos_malloc_hook_shared_liibrary; +extern volatile atomic_llong ohos_malloc_hook_shared_library; +#endif // HOOK_ENABLE #ifdef __cplusplus extern "C" { @@ -37,14 +39,19 @@ extern "C" { __attribute__((always_inline)) inline bool __get_global_hook_flag() { +#ifdef HOOK_ENABLE volatile bool g_flag = atomic_load_explicit(&__hook_enable_hook_flag, memory_order_acquire); return g_flag; +#else + return false; +#endif // HOOK_ENABLE } __attribute__((always_inline)) inline bool __get_hook_flag() { - volatile void* impl_handle = (void *)atomic_load_explicit(&ohos_malloc_hook_shared_liibrary, memory_order_acquire); +#ifdef HOOK_ENABLE + volatile void* impl_handle = (void *)atomic_load_explicit(&ohos_malloc_hook_shared_library, memory_order_acquire); if (impl_handle == NULL) { return false; } @@ -56,12 +63,16 @@ inline bool __get_hook_flag() bool flag = get_hook_func_ptr(); return flag; } +#else + return false; +#endif // HOOK_ENABLE } __attribute__((always_inline)) inline bool __set_hook_flag(bool flag) { - volatile void* impl_handle = (void *)atomic_load_explicit(&ohos_malloc_hook_shared_liibrary, memory_order_acquire); +#ifdef HOOK_ENABLE + volatile void* impl_handle = (void *)atomic_load_explicit(&ohos_malloc_hook_shared_library, memory_order_acquire); if (impl_handle == NULL) { return false; } @@ -72,11 +83,15 @@ inline bool __set_hook_flag(bool flag) SetHookFlagType set_hook_func_ptr = (SetHookFlagType)(function_of_shared_lib[SET_HOOK_FLAG_FUNCTION]); return set_hook_func_ptr(flag); } +#else + return false; +#endif // HOOK_ENABLE } __attribute__((always_inline)) inline volatile const struct MallocDispatchType* get_current_dispatch_table() { +#ifdef HOOK_ENABLE volatile const struct MallocDispatchType* ret = (struct MallocDispatchType *)atomic_load_explicit(&__musl_libc_globals.current_dispatch_table, memory_order_acquire); if (ret != NULL) { if (!__get_global_hook_flag()) { @@ -87,6 +102,9 @@ inline volatile const struct MallocDispatchType* get_current_dispatch_table() } } return ret; +#else + return NULL; +#endif // HOOK_ENABLE } #define MUSL_HOOK_PARAM_NAME "libc.hook_mode" -- GitLab