From d72a527e2beeca6c16063ab4e7b30841921205f5 Mon Sep 17 00:00:00 2001 From: k-lee9575 Date: Mon, 17 Mar 2025 16:59:33 +0800 Subject: [PATCH] fix BaseContext crash Signed-off-by: k-lee9575 --- frameworks/js/napi/tls/src/tlssocket_module.cpp | 6 +++++- utils/napi_utils/include/module_template.h | 12 ++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/frameworks/js/napi/tls/src/tlssocket_module.cpp b/frameworks/js/napi/tls/src/tlssocket_module.cpp index 32e412410..f7b2eb09c 100644 --- a/frameworks/js/napi/tls/src/tlssocket_module.cpp +++ b/frameworks/js/napi/tls/src/tlssocket_module.cpp @@ -203,8 +203,12 @@ napi_value TLSSocketModuleExports::ConstructTLSSocketInstance(napi_env env, napi NETSTACK_LOGE("get event manager in napi_unwrap failed, napiRet is %{public}d", napiRet); return nullptr; } + std::shared_ptr manager = nullptr; + if (sharedManager != nullptr && *sharedManager != nullptr) { + manager = *sharedManager; + } - auto context = new TLSInitContext(env, *sharedManager); + auto context = new TLSInitContext(env, manager); if (context == nullptr) { NETSTACK_LOGE("new TLSInitContext failed, no enough memory"); return nullptr; diff --git a/utils/napi_utils/include/module_template.h b/utils/napi_utils/include/module_template.h index 7333abf68..3f8a39a1f 100644 --- a/utils/napi_utils/include/module_template.h +++ b/utils/napi_utils/include/module_template.h @@ -109,8 +109,12 @@ napi_value InterfaceWithSharedManager(napi_env env, napi_callback_info info, con NETSTACK_LOGE("get event manager in napi_unwrap failed, napi_ret is %{public}d", napi_ret); return NapiUtils::GetUndefined(env); } + std::shared_ptr manager = nullptr; + if (sharedManager != nullptr && *sharedManager != nullptr) { + manager = *sharedManager; + } - auto context = new (std::nothrow) Context(env, *sharedManager); + auto context = new (std::nothrow) Context(env, manager); if (!context) { NETSTACK_LOGE("new context is nullptr"); return NapiUtils::GetUndefined(env); @@ -206,8 +210,12 @@ napi_value InterfaceWithOutAsyncWorkWithSharedManager(napi_env env, napi_callbac NETSTACK_LOGE("get event manager in napi_unwrap failed, napi_ret is %{public}d", napi_ret); return NapiUtils::GetUndefined(env); } + std::shared_ptr manager = nullptr; + if (sharedManager != nullptr && *sharedManager != nullptr) { + manager = *sharedManager; + } - auto context = new (std::nothrow) Context(env, *sharedManager); + auto context = new (std::nothrow) Context(env, manager); if (!context) { NETSTACK_LOGE("new context is nullptr"); return NapiUtils::GetUndefined(env); -- Gitee