From 2f8d675bbc2455c76d236a9cbcf8dafcc2c8bcf3 Mon Sep 17 00:00:00 2001 From: zhangyuhang72 Date: Wed, 25 Sep 2024 12:49:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A3=80=E8=A7=86=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangyuhang72 Change-Id: Ia383abaa39fff292cd56e3ed804ebb3eeeb9fcb0 --- .../child_process_manager/native_args_child_process.cpp | 2 ++ .../native/ability/native/js_service_extension.cpp | 2 +- .../native/child_process/src/native_child_process.cpp | 9 +++++---- services/appmgr/src/app_mgr_service_inner.cpp | 4 ++-- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/frameworks/native/ability/native/child_process_manager/native_args_child_process.cpp b/frameworks/native/ability/native/child_process_manager/native_args_child_process.cpp index 3a34a886f0..a3693fbf7e 100644 --- a/frameworks/native/ability/native/child_process_manager/native_args_child_process.cpp +++ b/frameworks/native/ability/native/child_process_manager/native_args_child_process.cpp @@ -79,6 +79,7 @@ NativeChildProcess_Args NativeArgsChildProcess::ParseToNativeArgs(const std::str } if (strcpy_s(args.entryParams, entryParams.size() + 1, entryParams.c_str()) != ERR_OK) { delete[] args.entryParams; + args.entryParams = nullptr; TAG_LOGE(AAFwkTag::APPKIT, "strcpy_s failed."); return args; } @@ -98,6 +99,7 @@ NativeChildProcess_Args NativeArgsChildProcess::ParseToNativeArgs(const std::str delete[] node->fdName; node->fdName = nullptr; delete node; + node = nullptr; TAG_LOGE(AAFwkTag::APPKIT, "strcpy_s failed."); return args; } diff --git a/frameworks/native/ability/native/js_service_extension.cpp b/frameworks/native/ability/native/js_service_extension.cpp index 74447132af..7b7fb9fb5a 100644 --- a/frameworks/native/ability/native/js_service_extension.cpp +++ b/frameworks/native/ability/native/js_service_extension.cpp @@ -224,7 +224,7 @@ void JsServiceExtension::ListenWMS() return; } - auto saStatusChangeListener_ = + saStatusChangeListener_ = sptr::MakeSptr(displayListener_, context->GetToken()); if (saStatusChangeListener_ == nullptr) { TAG_LOGE(AAFwkTag::SERVICE_EXT, "create status change listener failed"); diff --git a/frameworks/native/child_process/src/native_child_process.cpp b/frameworks/native/child_process/src/native_child_process.cpp index a986773e1c..ee5baeb0e2 100644 --- a/frameworks/native/child_process/src/native_child_process.cpp +++ b/frameworks/native/child_process/src/native_child_process.cpp @@ -41,7 +41,7 @@ const std::map { ChildProcessManagerErrorCode::ERR_MAX_CHILD_PROCESSES, NCP_ERR_MAX_CHILD_PROCESSES_REACHED }, { ChildProcessManagerErrorCode::ERR_LIB_LOADING_FAILED, NCP_ERR_LIB_LOADING_FAILED }, { ChildProcessManagerErrorCode::ERR_CONNECTION_FAILED, NCP_ERR_CONNECTION_FAILED }, - { ChildProcessManagerErrorCode::ERR_MULTI_PROCESS_MODEL_DISABLED_NEW, NCP_ERR_NOT_SUPPORTED }, + { ChildProcessManagerErrorCode::ERR_MULTI_PROCESS_MODEL_DISABLED_NEW, NCP_ERR_MULTI_PROCESS_DISABLED }, }; Ability_NativeChildProcess_ErrCode CvtChildProcessManagerErrCode(ChildProcessManagerErrorCode cpmErr) @@ -125,6 +125,10 @@ Ability_NativeChildProcess_ErrCode OH_Ability_StartNativeChildProcess(const char std::map fds; NativeChildProcess_Fd* cur = args.fdList.head; while (cur != nullptr) { + if (!cur->fdName) { + TAG_LOGE(AAFwkTag::PROCESSMGR, "fdName null"); + return NCP_ERR_INVALID_PARAM; + } std::string key(cur->fdName); if (key.size() > MAX_KEY_SIZE) { TAG_LOGE(AAFwkTag::PROCESSMGR, "fd name too long"); @@ -143,10 +147,8 @@ Ability_NativeChildProcess_ErrCode OH_Ability_StartNativeChildProcess(const char std::string entryParams(args.entryParams); childArgs.entryParams = entryParams; } - AppExecFwk::ChildProcessOptions childProcessOptions; childProcessOptions.isolationMode = options.isolationMode == NCP_ISOLATION_MODE_ISOLATED; - int32_t childProcessType = AppExecFwk::CHILD_PROCESS_TYPE_NATIVE_ARGS; ChildProcessManager &mgr = ChildProcessManager::GetInstance(); @@ -154,6 +156,5 @@ Ability_NativeChildProcess_ErrCode OH_Ability_StartNativeChildProcess(const char if (cpmErr != ChildProcessManagerErrorCode::ERR_OK) { return CvtChildProcessManagerErrCode(cpmErr); } - return NCP_NO_ERROR; } \ No newline at end of file diff --git a/services/appmgr/src/app_mgr_service_inner.cpp b/services/appmgr/src/app_mgr_service_inner.cpp index a67cfd8167..fe782e3bf7 100644 --- a/services/appmgr/src/app_mgr_service_inner.cpp +++ b/services/appmgr/src/app_mgr_service_inner.cpp @@ -6708,9 +6708,9 @@ int32_t AppMgrServiceInner::StartChildProcessPreCheck(pid_t callingPid, int32_t CHECK_POINTER_AND_RETURN_VALUE(hostRecord, ERR_NULL_OBJECT); auto &appUtils = AAFwk::AppUtils::GetInstance(); if (!appUtils.IsMultiProcessModel()) { - bool checkWhiteList = childProcessType == CHILD_PROCESS_TYPE_NATIVE_ARGS || + bool checkAllowList = childProcessType == CHILD_PROCESS_TYPE_NATIVE_ARGS || childProcessType == CHILD_PROCESS_TYPE_NATIVE; - if (!checkWhiteList || !appUtils.IsAllowNativeChildProcess(hostRecord->GetAppIdentifier())) { + if (!checkAllowList || !appUtils.IsAllowNativeChildProcess(hostRecord->GetAppIdentifier())) { TAG_LOGE(AAFwkTag::APPMGR, "not support child process."); return AAFwk::ERR_NOT_SUPPORT_CHILD_PROCESS; }