From 65bb11685fab1dec1f641d9731dbf418f9f978ce Mon Sep 17 00:00:00 2001 From: chensihan Date: Mon, 21 Oct 2024 15:34:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96=20Signed-o?= =?UTF-8?q?ff-by:=20chensihan=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backup_api/backup_impl/service_proxy_test.cpp | 12 ++++++------ tools/backup_tool/src/main.cpp | 5 +++++ utils/include/b_resources/b_constants.h | 3 +++ utils/src/b_sa/b_sa_utils.cpp | 4 ++++ 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/tests/unittests/backup_api/backup_impl/service_proxy_test.cpp b/tests/unittests/backup_api/backup_impl/service_proxy_test.cpp index 63ad75d97..2dec0d3e6 100644 --- a/tests/unittests/backup_api/backup_impl/service_proxy_test.cpp +++ b/tests/unittests/backup_api/backup_impl/service_proxy_test.cpp @@ -934,7 +934,7 @@ HWTEST_F(ServiceProxyTest, SUB_Service_proxy_OnLoadSystemAbilitySuccess_0100, te GTEST_LOG_(INFO) << "SUB_Service_proxy_OnLoadSystemAbilitySuccess_0100 proxy_ == nullptr"; return; } - sptr loadCallback = new ServiceProxy::ServiceProxyLoadCallback(); + sptr loadCallback = sptr(new ServiceProxy::ServiceProxyLoadCallback()); EXPECT_NE(loadCallback, nullptr); loadCallback->OnLoadSystemAbilitySuccess(SERVICE_ID, nullptr); loadCallback = nullptr; @@ -957,7 +957,7 @@ HWTEST_F(ServiceProxyTest, SUB_Service_proxy_OnLoadSystemAbilitySuccess_0101, te GTEST_LOG_(INFO) << "SUB_Service_proxy_OnLoadSystemAbilitySuccess_0101 proxy_ == nullptr"; return; } - sptr loadCallback = new ServiceProxy::ServiceProxyLoadCallback(); + sptr loadCallback = sptr(new ServiceProxy::ServiceProxyLoadCallback()); EXPECT_NE(loadCallback, nullptr); int32_t systemAbilityId = 0; sptr remoteObject = new MockIRemoteObject(); @@ -982,7 +982,7 @@ HWTEST_F(ServiceProxyTest, SUB_Service_proxy_OnLoadSystemAbilitySuccess_0102, te GTEST_LOG_(INFO) << "SUB_Service_proxy_OnLoadSystemAbilitySuccess_0102 proxy_ == nullptr"; return; } - sptr loadCallback = new ServiceProxy::ServiceProxyLoadCallback(); + sptr loadCallback = sptr(new ServiceProxy::ServiceProxyLoadCallback()); EXPECT_NE(loadCallback, nullptr); int32_t systemAbilityId = 0; loadCallback->OnLoadSystemAbilitySuccess(systemAbilityId, nullptr); @@ -1006,7 +1006,7 @@ HWTEST_F(ServiceProxyTest, SUB_Service_proxy_OnLoadSystemAbilitySuccess_0103, te GTEST_LOG_(INFO) << "SUB_Service_proxy_OnLoadSystemAbilitySuccess_0103 proxy_ == nullptr"; return; } - sptr loadCallback = new ServiceProxy::ServiceProxyLoadCallback(); + sptr loadCallback = sptr(new ServiceProxy::ServiceProxyLoadCallback()); EXPECT_NE(loadCallback, nullptr); sptr remoteObject = new MockIRemoteObject(); loadCallback->OnLoadSystemAbilitySuccess(SERVICE_ID, remoteObject); @@ -1030,7 +1030,7 @@ HWTEST_F(ServiceProxyTest, SUB_Service_proxy_OnLoadSystemAbilityFail_0100, testi GTEST_LOG_(INFO) << "SUB_Service_proxy_OnLoadSystemAbilityFail_0100 proxy_ == nullptr"; return; } - sptr loadCallback = new ServiceProxy::ServiceProxyLoadCallback(); + sptr loadCallback = sptr(new ServiceProxy::ServiceProxyLoadCallback()); EXPECT_NE(loadCallback, nullptr); loadCallback->OnLoadSystemAbilityFail(SERVICE_ID); loadCallback = nullptr; @@ -1061,7 +1061,7 @@ HWTEST_F(ServiceProxyTest, SUB_Service_proxy_GetInstance_0100, testing::ext::Tes SetMockLoadSystemAbility(true); proxy = ServiceProxy::GetInstance(); EXPECT_EQ(proxy, nullptr); - sptr loadCallback = new ServiceProxy::ServiceProxyLoadCallback(); + sptr loadCallback = sptr(new ServiceProxy::ServiceProxyLoadCallback()); sptr object = new MockIRemoteObject(); loadCallback->OnLoadSystemAbilitySuccess(SERVICE_ID, object); GTEST_LOG_(INFO) << "GetInstance is ok"; diff --git a/tools/backup_tool/src/main.cpp b/tools/backup_tool/src/main.cpp index 9b977652e..57964e452 100644 --- a/tools/backup_tool/src/main.cpp +++ b/tools/backup_tool/src/main.cpp @@ -20,6 +20,7 @@ int main() } #else +#include "b_resources/b_constants.h" #include "errors.h" #include "tools_op.h" #include "tools_op_backup.h" @@ -96,6 +97,10 @@ int ParseOpAndExecute(const int argc, char *const argv[]) // 注册下命令 ToolRegister(); int flag = -1; + if (argc >= BConstants::PARSE_OPS_MAX_COUNT) { + printf("backup_tool: too many ops\nTry 'backup_tool help' for more information.\n"); + return flag; + } for (int i = 1; i < argc; i++) { // 暂存 {argv[1]...argv[i]}; vector curOp; diff --git a/utils/include/b_resources/b_constants.h b/utils/include/b_resources/b_constants.h index 447cde28b..b7da3372e 100644 --- a/utils/include/b_resources/b_constants.h +++ b/utils/include/b_resources/b_constants.h @@ -93,6 +93,9 @@ constexpr int APP_ON_PROCESS_MAX_TIMEOUT = 1000; // 应用的onProcess接口最 constexpr int FIRST_CALL_APP_ON_PROCESS_MAX_TIMEOUT = 15000; // 首次调用应用的onProcess接口最大超时时间为15秒 constexpr int APP_ON_PROCESS_TIMEOUT_MAX_COUNT = 3; // 应用的onProcess接口超时的上限次数 +constexpr int BUNDLE_NAME_MAX_LENGTH = 256; +constexpr int PARSE_OPS_MAX_COUNT = 256; + // backup.para内配置项的名称,该配置项值为true时可在不更新hap包的情况下,可以读取包管理元数据配置文件的内容 static inline std::string BACKUP_DEBUG_OVERRIDE_EXTENSION_CONFIG_KEY = "backup.debug.overrideExtensionConfig"; static const bool BACKUP_DEBUG_OVERRIDE_EXTENSION_CONFIG_DEFAULT_VALUE = false; diff --git a/utils/src/b_sa/b_sa_utils.cpp b/utils/src/b_sa/b_sa_utils.cpp index 399cb1026..b19231ddd 100644 --- a/utils/src/b_sa/b_sa_utils.cpp +++ b/utils/src/b_sa/b_sa_utils.cpp @@ -13,6 +13,7 @@ * limitations under the License. */ +#include "b_resources/b_constants.h" #include "b_sa/b_sa_utils.h" #include "access_token.h" #include "accesstoken_kit.h" @@ -30,6 +31,9 @@ bool SAUtils::IsSABundleName(std::string bundleName) if (bundleName.empty()) { return false; } + if (bundleName.size() >= BConstants::BUNDLE_NAME_MAX_LENGTH) { + return false; + } for (size_t i = 0; i < bundleName.size(); i++) { if (!std::isdigit(bundleName[i])) { return false; -- Gitee