From 5f298d2a43d0defddaff7b9119d9c1197fa0ead3 Mon Sep 17 00:00:00 2001 From: ilho kim Date: Thu, 12 Jan 2023 15:47:03 +0900 Subject: [PATCH 01/16] Add routine to check file status Change-Id: I738d4ab97fdda67111ad8316ec4fe6e04b856cef Signed-off-by: ilho kim --- test/smoke_tests/extensive_smoke_test.cc | 140 ++++++++++++++++++++++++++++--- 1 file changed, 129 insertions(+), 11 deletions(-) diff --git a/test/smoke_tests/extensive_smoke_test.cc b/test/smoke_tests/extensive_smoke_test.cc index e51a0f7..d1bdcfc 100644 --- a/test/smoke_tests/extensive_smoke_test.cc +++ b/test/smoke_tests/extensive_smoke_test.cc @@ -129,11 +129,23 @@ TEST_F(SmokeTest, RecoveryMode_ForInstallation) { TEST_F(SmokeTest, RecoveryMode_ForUpdate) { bf::path path_old = kSmokePackagesDirectory / "RecoveryMode_ForUpdate.wgt"; bf::path path_new = kSmokePackagesDirectory / "RecoveryMode_ForUpdate_2.wgt"; + std::string pkgid = "smokewgt10"; + std::string appid = "smokewgt10.RecoveryModeForUpdate"; RemoveAllRecoveryFiles("/wgt-recovery", params.test_user.uid); ASSERT_EQ(backend.InstallWithSubprocess(path_old), BackendInterface::SubProcessResult::SUCCESS); - std::string pkgid = "smokewgt10"; - std::string appid = "smokewgt10.RecoveryModeForUpdate"; + std::vector added_files; + AddDataFiles(pkgid, params.test_user.uid, &added_files); + FileInfoCollector expected_file_status_old(pkgid, params); + ASSERT_TRUE(expected_file_status_old.Init()); + ASSERT_EQ(backend.InstallWithSubprocess(path_new), + BackendInterface::SubProcessResult::SUCCESS); + FileInfoCollector expected_file_status_new(pkgid, params); + ASSERT_TRUE(expected_file_status_new.Init()); + ASSERT_EQ(backend.UninstallWithSubprocess(pkgid), + BackendInterface::SubProcessResult::SUCCESS); + ASSERT_EQ(backend.InstallWithSubprocess(path_old), + BackendInterface::SubProcessResult::SUCCESS); AddDataFiles(pkgid, params.test_user.uid); std::string test_user_str = std::to_string(params.test_user.uid); @@ -154,13 +166,20 @@ TEST_F(SmokeTest, RecoveryMode_ForUpdate) { EXTENDED_ASSERT_TRUE(ValidateFileContentInPackage(pkgid, "res/wgt/VERSION", version, params)); EXTENDED_ASSERT_TRUE(ValidateDataFiles(pkgid, params.test_user.uid)); + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); if (recovery_info->cleanup()) { + EXTENDED_ASSERT_TRUE( + expected_file_status_new.IsEqual(new_file_status, &added_files)); EXTENDED_ASSERT_EQ(backend.UninstallWithSubprocess(pkgid), BackendInterface::SubProcessResult::SUCCESS); EXTENDED_ASSERT_EQ(backend.InstallWithSubprocess(path_old), BackendInterface::SubProcessResult::SUCCESS); AddDataFiles(pkgid, params.test_user.uid); + } else { + EXTENDED_ASSERT_TRUE( + expected_file_status_old.IsEqual(new_file_status, &added_files)); } } return true; @@ -175,6 +194,18 @@ TEST_F(SmokeTest, RecoveryMode_ForDelta) { RemoveAllRecoveryFiles("/wgt-recovery", params.test_user.uid); ASSERT_EQ(BackendInterface::SubProcessResult::SUCCESS, backend.InstallWithSubprocess(path_old)); + std::vector added_files; + AddDataFiles(pkgid, params.test_user.uid, &added_files); + FileInfoCollector expected_file_status_old(pkgid, params); + ASSERT_TRUE(expected_file_status_old.Init()); + ASSERT_EQ(backend.InstallWithSubprocess(path_new), + BackendInterface::SubProcessResult::SUCCESS); + FileInfoCollector expected_file_status_new(pkgid, params); + ASSERT_TRUE(expected_file_status_new.Init()); + ASSERT_EQ(backend.UninstallWithSubprocess(pkgid), + BackendInterface::SubProcessResult::SUCCESS); + ASSERT_EQ(backend.InstallWithSubprocess(path_old), + BackendInterface::SubProcessResult::SUCCESS); AddDataFiles(pkgid, params.test_user.uid); std::string test_user_str = std::to_string(params.test_user.uid); std::vector args = @@ -194,13 +225,20 @@ TEST_F(SmokeTest, RecoveryMode_ForDelta) { EXTENDED_ASSERT_TRUE(ValidateFileContentInPackage(pkgid, "res/wgt/VERSION", contents, params)); EXTENDED_ASSERT_TRUE(ValidateDataFiles(pkgid, params.test_user.uid)); + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); if (recovery_info->cleanup()) { + EXTENDED_ASSERT_TRUE( + expected_file_status_new.IsEqual(new_file_status, &added_files)); EXTENDED_ASSERT_EQ(backend.UninstallWithSubprocess(pkgid), BackendInterface::SubProcessResult::SUCCESS); EXTENDED_ASSERT_EQ(backend.InstallWithSubprocess(path_old), BackendInterface::SubProcessResult::SUCCESS); AddDataFiles(pkgid, params.test_user.uid); + } else { + EXTENDED_ASSERT_TRUE( + expected_file_status_old.IsEqual(new_file_status, &added_files)); } } return true; @@ -247,6 +285,18 @@ TEST_F(SmokeTest, RecoveryMode_ForMountUpdate) { RemoveAllRecoveryFiles("/wgt-recovery", params.test_user.uid); ASSERT_EQ(backend.MountInstallWithSubprocess(path_old), BackendInterface::SubProcessResult::SUCCESS); + std::vector added_files; + AddDataFiles(pkgid, params.test_user.uid, &added_files); + FileInfoCollector expected_file_status_old(pkgid, params); + ASSERT_TRUE(expected_file_status_old.Init()); + ASSERT_EQ(backend.MountInstallWithSubprocess(path_new), + BackendInterface::SubProcessResult::SUCCESS); + FileInfoCollector expected_file_status_new(pkgid, params); + ASSERT_TRUE(expected_file_status_new.Init()); + ASSERT_EQ(backend.UninstallWithSubprocess(pkgid), + BackendInterface::SubProcessResult::SUCCESS); + ASSERT_EQ(backend.MountInstallWithSubprocess(path_old), + BackendInterface::SubProcessResult::SUCCESS); AddDataFiles(pkgid, params.test_user.uid); std::string test_user_str = std::to_string(params.test_user.uid); std::vector args = @@ -272,13 +322,20 @@ TEST_F(SmokeTest, RecoveryMode_ForMountUpdate) { EXTENDED_ASSERT_TRUE(ValidateFileContentInPackage( pkgid, "res/wgt/VERSION", version, params)); EXTENDED_ASSERT_TRUE(ValidateDataFiles(pkgid, params.test_user.uid)); + interface.Release(); + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); if (recovery_info->cleanup()) { - interface.Release(); + EXTENDED_ASSERT_TRUE( + expected_file_status_new.IsEqual(new_file_status, &added_files)); EXTENDED_ASSERT_EQ(backend.UninstallWithSubprocess(pkgid), BackendInterface::SubProcessResult::SUCCESS); EXTENDED_ASSERT_EQ(backend.MountInstallWithSubprocess(path_old), BackendInterface::SubProcessResult::SUCCESS); AddDataFiles(pkgid, params.test_user.uid); + } else { + EXTENDED_ASSERT_TRUE( + expected_file_status_old.IsEqual(new_file_status, &added_files)); } } return true; @@ -306,11 +363,18 @@ TEST_F(SmokeTest, UpdateMode_Rollback) { std::string appid = "smokewgt07.UpdateModeRollback"; ASSERT_EQ(backend.InstallWithSubprocess(path_old), BackendInterface::SubProcessResult::SUCCESS); - AddDataFiles(pkgid, params.test_user.uid); + std::vector added_files; + AddDataFiles(pkgid, params.test_user.uid, &added_files); + FileInfoCollector expected_file_status(pkgid, params); + ASSERT_TRUE(expected_file_status.Init()); std::string test_user_str = std::to_string(params.test_user.uid); const char* argv[] = {"", "-i", path_new.c_str(), "-u", test_user_str.c_str()}; backend.TestRollbackAfterEachStep(SIZEOFARRAY(argv), argv, [&]() -> bool { + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); + EXTENDED_ASSERT_TRUE( + expected_file_status.IsEqual(new_file_status, &added_files)); EXTENDED_ASSERT_TRUE(ValidatePackage(pkgid, {appid}, params)); EXTENDED_ASSERT_TRUE(ValidateFileContentInPackage(pkgid, @@ -327,11 +391,18 @@ TEST_F(SmokeTest, DeltaMode_Rollback) { std::string appid = "smokewgt01.DeltaMode"; ASSERT_EQ(backend.InstallWithSubprocess(path), BackendInterface::SubProcessResult::SUCCESS); - AddDataFiles(pkgid, params.test_user.uid); + std::vector added_files; + AddDataFiles(pkgid, params.test_user.uid, &added_files); + FileInfoCollector expected_file_status(pkgid, params); + ASSERT_TRUE(expected_file_status.Init()); std::string test_user_str = std::to_string(params.test_user.uid); const char* argv[] = {"", "-i", delta_package.c_str(), "-u", test_user_str.c_str()}; backend.TestRollbackAfterEachStep(SIZEOFARRAY(argv), argv, [&]() -> bool { + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); + EXTENDED_ASSERT_TRUE( + expected_file_status.IsEqual(new_file_status, &added_files)); EXTENDED_ASSERT_TRUE(ValidatePackage(pkgid, {appid}, params)); EXTENDED_ASSERT_TRUE(ValidateFileContentInPackage(pkgid, "res/wgt/MODIFIED", "version 1\n", params)); @@ -366,11 +437,18 @@ TEST_F(HybridSmokeTest, UpdateMode_Rollback) { std::string appid1 = "smokehyb08.web"; ASSERT_EQ(backend.InstallWithSubprocess(path_old), BackendInterface::SubProcessResult::SUCCESS); - AddDataFiles(pkgid, params.test_user.uid); + std::vector added_files; + AddDataFiles(pkgid, params.test_user.uid, &added_files); + FileInfoCollector expected_file_status(pkgid, params); + ASSERT_TRUE(expected_file_status.Init()); std::string test_user_str = std::to_string(params.test_user.uid); const char* argv[] = {"", "-i", path_new.c_str(), "-u", test_user_str.c_str()}; backend.TestRollbackAfterEachStep(SIZEOFARRAY(argv), argv, [&]() -> bool { + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); + EXTENDED_ASSERT_TRUE( + expected_file_status.IsEqual(new_file_status, &added_files)); EXTENDED_ASSERT_TRUE(ValidatePackage(pkgid, {appid1}, params)); EXTENDED_ASSERT_TRUE(ValidateFileContentInPackage(pkgid, @@ -390,10 +468,17 @@ TEST_F(HybridSmokeTest, DeltaMode_Rollback_Hybrid) { std::string appid1 = "smokehyb11.web"; ASSERT_EQ(backend.InstallWithSubprocess(path), BackendInterface::SubProcessResult::SUCCESS); - AddDataFiles(pkgid, params.test_user.uid); + std::vector added_files; + AddDataFiles(pkgid, params.test_user.uid, &added_files); + FileInfoCollector expected_file_status(pkgid, params); + ASSERT_TRUE(expected_file_status.Init()); std::string test_user_str = std::to_string(params.test_user.uid); const char* argv[] = {"", "-i", path.c_str(), "-u", test_user_str.c_str()}; backend.TestRollbackAfterEachStep(SIZEOFARRAY(argv), argv, [&]() -> bool { + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); + EXTENDED_ASSERT_TRUE( + expected_file_status.IsEqual(new_file_status, &added_files)); EXTENDED_ASSERT_TRUE(ValidatePackage(pkgid, {appid1}, params)); // Check delta modifications bf::path root_path = GetPackageRoot(pkgid, params.test_user.uid); @@ -433,11 +518,18 @@ TEST_F(HybridSmokeTest, MountUpdateMode_Rollback) { std::string appid1 = "smokehyb10.web"; ASSERT_EQ(backend.MountInstallWithSubprocess(path_old), BackendInterface::SubProcessResult::SUCCESS); - AddDataFiles(pkgid, params.test_user.uid); + std::vector added_files; + AddDataFiles(pkgid, params.test_user.uid, &added_files); + FileInfoCollector expected_file_status(pkgid, params); + ASSERT_TRUE(expected_file_status.Init()); std::string test_user_str = std::to_string(params.test_user.uid); const char* argv[] = {"", "-w", path_new.c_str(), "-u", test_user_str.c_str()}; backend.TestRollbackAfterEachStep(SIZEOFARRAY(argv), argv, [&]() -> bool { + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); + EXTENDED_ASSERT_TRUE( + expected_file_status.IsEqual(new_file_status, &added_files)); ScopedTzipInterface interface(pkgid, params.test_user.uid); EXTENDED_ASSERT_TRUE(ValidatePackage(pkgid, {appid1}, params)); @@ -472,11 +564,18 @@ TEST_F(SmokeTest, MountUpdateMode_Rollback) { std::string appid = "smokewgt34.web"; ASSERT_EQ(backend.MountInstallWithSubprocess(path_old), BackendInterface::SubProcessResult::SUCCESS); - AddDataFiles(pkgid, params.test_user.uid); + std::vector added_files; + AddDataFiles(pkgid, params.test_user.uid, &added_files); + FileInfoCollector expected_file_status(pkgid, params); + ASSERT_TRUE(expected_file_status.Init()); std::string test_user_str = std::to_string(params.test_user.uid); const char* argv[] = {"", "-w", path_new.c_str(), "-u", test_user_str.c_str()}; backend.TestRollbackAfterEachStep(SIZEOFARRAY(argv), argv, [&]() -> bool { + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); + EXTENDED_ASSERT_TRUE( + expected_file_status.IsEqual(new_file_status, &added_files)); ScopedTzipInterface interface(pkgid, params.test_user.uid); EXTENDED_ASSERT_TRUE(ValidatePackage(pkgid, {appid}, params)); @@ -493,11 +592,23 @@ TEST_F(PreloadSmokeTest, RecoveryMode_ForReadonlyUpdateInstall) { "RecoveryMode_ForReadonlyUpdateInstall.wgt"; bf::path path_new = kSmokePackagesDirectory / "RecoveryMode_ForReadonlyUpdateInstall_2.wgt"; + std::string pkgid = "smokewgt51"; + std::string appid = "smokewgt51.RecoveryModeForReadonlyUpdateInstall"; RemoveAllRecoveryFiles("/wgt-recovery", params.test_user.uid); ASSERT_EQ(backend.InstallPreloadWithSubprocess(path_old), BackendInterface::SubProcessResult::SUCCESS); - std::string pkgid = "smokewgt51"; - std::string appid = "smokewgt51.RecoveryModeForReadonlyUpdateInstall"; + std::vector added_files; + AddDataFiles(pkgid, params.test_user.uid, &added_files); + FileInfoCollector expected_file_status_old(pkgid, params); + ASSERT_TRUE(expected_file_status_old.Init()); + ASSERT_EQ(backend.InstallWithSubprocess(path_new), + BackendInterface::SubProcessResult::SUCCESS); + params.is_readonly = false; + FileInfoCollector expected_file_status_new(pkgid, params); + ASSERT_TRUE(expected_file_status_new.Init()); + params.is_readonly = true; + ASSERT_EQ(backend.UninstallWithSubprocess(pkgid), + BackendInterface::SubProcessResult::SUCCESS); AddDataFiles(pkgid, params.test_user.uid); std::string test_uid_str = std::to_string(params.test_user.uid); std::vector args = @@ -519,11 +630,18 @@ TEST_F(PreloadSmokeTest, RecoveryMode_ForReadonlyUpdateInstall) { EXTENDED_ASSERT_TRUE(ValidateFileContentInPackage(pkgid, "res/wgt/VERSION", version, params)); EXTENDED_ASSERT_TRUE(ValidateDataFiles(pkgid, params.test_user.uid)); + FileInfoCollector new_file_status(pkgid, params); + EXTENDED_ASSERT_TRUE(new_file_status.Init()); if (recovery_info->cleanup()) { + EXTENDED_ASSERT_TRUE( + expected_file_status_new.IsEqual(new_file_status, &added_files)); EXTENDED_ASSERT_EQ(backend.UninstallWithSubprocess(pkgid), BackendInterface::SubProcessResult::SUCCESS); AddDataFiles(pkgid, params.test_user.uid); + } else { + EXTENDED_ASSERT_TRUE( + expected_file_status_old.IsEqual(new_file_status, &added_files)); } } return true; -- 2.7.4 From a2c05d73e4c08928019d512960e86acfc73a21ad Mon Sep 17 00:00:00 2001 From: ilho kim Date: Fri, 13 Jan 2023 16:53:58 +0900 Subject: [PATCH 02/16] Release version 0.15.30 Changes: - Change backup logic in mount update - Move StepWgtPatchStorageDirectories in the right order - Add routine to check file status Change-Id: Ibcf0dc872eda49280aa9179369d4cca642d98804 Signed-off-by: ilho kim --- packaging/wgt-backend.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/wgt-backend.spec b/packaging/wgt-backend.spec index 520eacb..ebaad27 100644 --- a/packaging/wgt-backend.spec +++ b/packaging/wgt-backend.spec @@ -1,6 +1,6 @@ Name: wgt-backend Summary: Application installer backend for WGT -Version: 0.15.29 +Version: 0.15.30 Release: 1 Group: Application Framework/Package Management License: Apache-2.0 -- 2.7.4 From 4961d18e50be8a326a86dda02d6ba661faab367c Mon Sep 17 00:00:00 2001 From: Sangyoon Jang Date: Thu, 23 Mar 2023 09:13:41 +0900 Subject: [PATCH 03/16] Fix static analysis issues Change-Id: Iba46bb2ddb6359bf54f0a15e1c4e922b87a3c421 Signed-off-by: Sangyoon Jang --- src/wgt/utils/extension_config_parser.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/wgt/utils/extension_config_parser.cc b/src/wgt/utils/extension_config_parser.cc index 93d0abf..7583c46 100644 --- a/src/wgt/utils/extension_config_parser.cc +++ b/src/wgt/utils/extension_config_parser.cc @@ -58,6 +58,10 @@ std::string ExtensionConfigParser::GetNodeDir( if (xmlStrEqual(prop->name, kDirAttributeKey)) { char* prop_value = reinterpret_cast(xmlNodeListGetString( node->doc, prop->children, 1)); + if (!prop_value) { + LOG(ERROR) << "Failed to get value string"; + return {}; + } dir = prop_value; xmlFree(prop_value); break; @@ -116,6 +120,10 @@ std::unique_ptr xmlAttr* prop = nullptr; for (prop = root->properties; prop; prop = prop->next) { xmlChar* value_ptr = xmlNodeListGetString(root->doc, prop->children, 1); + if (!value_ptr) { + LOG(ERROR) << "Failed to get value string"; + continue; + } std::string prop_value(reinterpret_cast(value_ptr)); xmlFree(value_ptr); if (IsPropSupportDir(root, prop)) -- 2.7.4 From 1c9fc28a644a0831ec8e4cb0f154d55a9553f132 Mon Sep 17 00:00:00 2001 From: Sangyoon Jang Date: Thu, 23 Mar 2023 12:38:39 +0900 Subject: [PATCH 04/16] Release version 0.15.31 Changes: - Fix static analysis issues Change-Id: I2870c444bb7c4a6626dfa73b54e586c3bcfabe1a Signed-off-by: Sangyoon Jang --- packaging/wgt-backend.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/wgt-backend.spec b/packaging/wgt-backend.spec index ebaad27..8bd3e83 100644 --- a/packaging/wgt-backend.spec +++ b/packaging/wgt-backend.spec @@ -1,6 +1,6 @@ Name: wgt-backend Summary: Application installer backend for WGT -Version: 0.15.30 +Version: 0.15.31 Release: 1 Group: Application Framework/Package Management License: Apache-2.0 -- 2.7.4 From b8f4916f496656ded172582dd483ecfa895887ba Mon Sep 17 00:00:00 2001 From: ilho kim Date: Thu, 3 Aug 2023 11:24:55 +0900 Subject: [PATCH 05/16] Fix static analysis issue 'std::time_t' to 'long' may or may not override sign-bit depending on size of implementation defined type which may cause unexpected results on porting to different platforms Change-Id: Ie4cfdc8f9e22e865d98b2b3ad2b918705f8beb5e Signed-off-by: ilho kim --- src/wgt/step/configuration/step_parse.cc | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/wgt/step/configuration/step_parse.cc b/src/wgt/step/configuration/step_parse.cc index d40be87..7927042 100644 --- a/src/wgt/step/configuration/step_parse.cc +++ b/src/wgt/step/configuration/step_parse.cc @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -39,7 +40,6 @@ #include -#include #include #include #include @@ -155,7 +155,6 @@ namespace wgt { namespace configuration { namespace app_keys = wgt::application_widget_keys; -namespace sc = std::chrono; StepParse::StepParse(common_installer::InstallerContext* context, ConfigLocation config_location, @@ -182,9 +181,7 @@ std::string StepParse::GetPackageVersion( bool StepParse::FillInstallationInfo(manifest_x* manifest) { manifest->root_path = strdup( (context_->root_application_path.get() / manifest->package).c_str()); - manifest->installed_time = - strdup(std::to_string(sc::system_clock::to_time_t( - sc::system_clock::now())).c_str()); + manifest->installed_time = strdup(common_installer::GetCurrentTime().c_str()); return true; } -- 2.7.4 From 23590201874048fac5336c4062c631d2629dc44b Mon Sep 17 00:00:00 2001 From: ilho kim Date: Fri, 4 Aug 2023 13:17:27 +0900 Subject: [PATCH 06/16] Release version 0.15.32 Changes: - Fix static analysis issue Change-Id: I30a2dcd1b07b10b3f40afe012fbb4adc3bd51b40 Signed-off-by: ilho kim --- packaging/wgt-backend.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/wgt-backend.spec b/packaging/wgt-backend.spec index 8bd3e83..563323a 100644 --- a/packaging/wgt-backend.spec +++ b/packaging/wgt-backend.spec @@ -1,6 +1,6 @@ Name: wgt-backend Summary: Application installer backend for WGT -Version: 0.15.31 +Version: 0.15.32 Release: 1 Group: Application Framework/Package Management License: Apache-2.0 -- 2.7.4 From 083cf65383b8d6f5935679ff4d0e7293ffa15526 Mon Sep 17 00:00:00 2001 From: ilho kim Date: Thu, 10 Aug 2023 14:30:20 +0900 Subject: [PATCH 07/16] Fix static analysis issue Check the return value of glob() Change-Id: I7f526ca453ccdde105d44193914833f0ec512868 Signed-off-by: ilho kim --- src/wgt/step/security/step_check_extension_privileges.cc | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/wgt/step/security/step_check_extension_privileges.cc b/src/wgt/step/security/step_check_extension_privileges.cc index 796022d..e40fc6b 100755 --- a/src/wgt/step/security/step_check_extension_privileges.cc +++ b/src/wgt/step/security/step_check_extension_privileges.cc @@ -56,11 +56,16 @@ common_installer::Step::Status StepCheckExtensionPrivileges::process() { std::set xmlFiles; { glob_t glob_result; - glob(app_ext_config_pattern.c_str(), GLOB_TILDE, NULL, &glob_result); - for (unsigned int i = 0; i < glob_result.gl_pathc; ++i) { - xmlFiles.insert(glob_result.gl_pathv[i]); + int ret = glob(app_ext_config_pattern.c_str(), + GLOB_TILDE, NULL, &glob_result); + if (ret == 0) { + for (unsigned int i = 0; i < glob_result.gl_pathc; ++i) { + xmlFiles.insert(glob_result.gl_pathv[i]); + } + globfree(&glob_result); + } else { + LOG(ERROR) << "Fail to get extension paths, error code : " << ret; } - globfree(&glob_result); } GList* privileges = nullptr; BOOST_SCOPE_EXIT_ALL(privileges) { -- 2.7.4 From 698d89be978169d7f659b6dcd7a61b0d33c604f3 Mon Sep 17 00:00:00 2001 From: ilho kim Date: Fri, 11 Aug 2023 11:10:12 +0900 Subject: [PATCH 08/16] Release version 0.15.33 Changes: - Fix static analysis issue Change-Id: Ida3aaecd1dcc0206fc80ea31a9fcf23534011f43 Signed-off-by: ilho kim --- packaging/wgt-backend.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/wgt-backend.spec b/packaging/wgt-backend.spec index 563323a..ce4ab7a 100644 --- a/packaging/wgt-backend.spec +++ b/packaging/wgt-backend.spec @@ -1,6 +1,6 @@ Name: wgt-backend Summary: Application installer backend for WGT -Version: 0.15.32 +Version: 0.15.33 Release: 1 Group: Application Framework/Package Management License: Apache-2.0 -- 2.7.4 From 53b146f1502b64a31c098025eb3f54ea8f9e1574 Mon Sep 17 00:00:00 2001 From: ilho kim Date: Fri, 20 Oct 2023 15:24:46 +0900 Subject: [PATCH 09/16] Remove code that may fall info infinite loop Change-Id: I8ebbac18e15ec68c0dc215ec619527b5aa93fbca Signed-off-by: ilho kim --- src/wgt/step/encryption/step_encrypt_resources.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/wgt/step/encryption/step_encrypt_resources.cc b/src/wgt/step/encryption/step_encrypt_resources.cc index 40b6781..448d2f4 100644 --- a/src/wgt/step/encryption/step_encrypt_resources.cc +++ b/src/wgt/step/encryption/step_encrypt_resources.cc @@ -36,9 +36,9 @@ const std::set encryptSet { ".html", ".htm", ".css", ".js"}; FILE* OpenFile(const bf::path& path, const std::string& mode) { FILE* result = nullptr; - do { - result = fopen(path.c_str(), mode.c_str()); - } while ((nullptr == result)); + result = fopen(path.c_str(), mode.c_str()); + if (result == nullptr) + LOG(ERROR) << "open [" << path << "] fail, errno : " << errno; return result; } -- 2.7.4 From 8c7721c11e1cf5ec655c6d0b9b24375bb3a60ac9 Mon Sep 17 00:00:00 2001 From: ilho kim Date: Fri, 20 Oct 2023 19:18:59 +0900 Subject: [PATCH 10/16] Release version 0.15.34 Changes: - Remove code that may fall info infinite loop Change-Id: I3167436182fdadf1f6f4f431c1abc38472d0f49b Signed-off-by: ilho kim --- packaging/wgt-backend.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/wgt-backend.spec b/packaging/wgt-backend.spec index ce4ab7a..859c239 100644 --- a/packaging/wgt-backend.spec +++ b/packaging/wgt-backend.spec @@ -1,6 +1,6 @@ Name: wgt-backend Summary: Application installer backend for WGT -Version: 0.15.33 +Version: 0.15.34 Release: 1 Group: Application Framework/Package Management License: Apache-2.0 -- 2.7.4 From 378e7df01071c7a199f4bf6b1fd18170b47c42a5 Mon Sep 17 00:00:00 2001 From: Ilho Kim Date: Mon, 29 Jan 2024 19:34:55 +0900 Subject: [PATCH 11/16] Fix static analysis issue Avoid sign extension Use of auto that causes a copy Change-Id: Ieaa6d37d8cdc0f7c8e9d2f793b32372c0cf2934e Signed-off-by: Ilho Kim --- src/lib/wgt_archive_info.cc | 2 +- src/wgt/step/pkgmgr/step_generate_xml.cc | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/wgt_archive_info.cc b/src/lib/wgt_archive_info.cc index edc7d77..0fd5307 100644 --- a/src/lib/wgt_archive_info.cc +++ b/src/lib/wgt_archive_info.cc @@ -140,7 +140,7 @@ bool WgtArchiveInfo::ReadIcon(const bf::path& icon, const bf::path& tmp_dir) { icon_buf_.resize(len / sizeof(unsigned char)); ifs.read(reinterpret_cast(icon_buf_.data()), len); - if (len != icon_buf_.size()) { + if (static_cast(len) != icon_buf_.size()) { LOG(ERROR) << "Reading icon failed, icon size is: " << len << ", but read size is: " << icon_buf_.size(); return false; diff --git a/src/wgt/step/pkgmgr/step_generate_xml.cc b/src/wgt/step/pkgmgr/step_generate_xml.cc index 7294e17..abae81c 100644 --- a/src/wgt/step/pkgmgr/step_generate_xml.cc +++ b/src/wgt/step/pkgmgr/step_generate_xml.cc @@ -595,8 +595,8 @@ void StepGenerateXml::GenerateAccount(xmlTextWriterPtr writer) { } void StepGenerateXml::GenerateIme(xmlTextWriterPtr writer) { - const auto &ime = context_->manifest_plugins_data.get().ime_info.get(); - const auto ime_uuid = ime.uuid(); + const auto& ime = context_->manifest_plugins_data.get().ime_info.get(); + const auto& ime_uuid = ime.uuid(); if (!ime_uuid.empty()) { xmlTextWriterStartElement(writer, BAD_CAST "ime"); -- 2.7.4 From 59c0d516a451c630fccd806585f5f77dcda87797 Mon Sep 17 00:00:00 2001 From: Ilho Kim Date: Tue, 30 Jan 2024 14:23:11 +0900 Subject: [PATCH 12/16] Release version 0.15.35 Changes: - Fix static analysis issue Change-Id: Ie7243b7ead7efe60d82c3542164f925be0ec9b4c Signed-off-by: Ilho Kim --- packaging/wgt-backend.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/wgt-backend.spec b/packaging/wgt-backend.spec index 859c239..a85906d 100644 --- a/packaging/wgt-backend.spec +++ b/packaging/wgt-backend.spec @@ -1,6 +1,6 @@ Name: wgt-backend Summary: Application installer backend for WGT -Version: 0.15.34 +Version: 0.15.35 Release: 1 Group: Application Framework/Package Management License: Apache-2.0 -- 2.7.4 From 78f9165139885bbe74d284c2bdbacaa347ff0e9a Mon Sep 17 00:00:00 2001 From: Sangyoon Jang Date: Wed, 31 Jan 2024 10:06:23 +0900 Subject: [PATCH 13/16] Fix std=c++14 for gtest 1.14.0 version upgrade Change-Id: I0e25ddf941cea4018733d76518ef4c8b9ed3a54e Signed-off-by: Sangyoon Jang --- CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c1435dc..57192e1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,12 +13,12 @@ ENDIF(NOT CMAKE_BUILD_TYPE) # Compiler flags SET(EXTRA_FLAGS "-Wall -Wextra") SET(CMAKE_C_FLAGS_PROFILING "-O2 ${EXTRA_FLAGS}") -SET(CMAKE_CXX_FLAGS_PROFILING "-O2 -std=c++11 ${EXTRA_FLAGS}") +SET(CMAKE_CXX_FLAGS_PROFILING "-O2 -std=c++14 ${EXTRA_FLAGS}") SET(CMAKE_C_FLAGS_DEBUG "-O0 -g ${EXTRA_FLAGS}") -SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -std=c++11 -g ${EXTRA_FLAGS}") +SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -std=c++14 -g ${EXTRA_FLAGS}") SET(CMAKE_C_FLAGS_RELEASE "-O2 -g ${EXTRA_FLAGS}") -SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -std=c++11 -g ${EXTRA_FLAGS}") -SET(CMAKE_CXX_FLAGS_CCOV "-O0 -std=c++11 -g --coverage ${EXTRA_FLAGS}") +SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -std=c++14 -g ${EXTRA_FLAGS}") +SET(CMAKE_CXX_FLAGS_CCOV "-O0 -std=c++14 -g --coverage ${EXTRA_FLAGS}") # Linker flags SET(EXTRA_LINKER_FLAGS "-Wl,--as-needed") -- 2.7.4 From 50032536ef68f71d2205dfa7ca67e3668587e9d5 Mon Sep 17 00:00:00 2001 From: Sangyoon Jang Date: Wed, 31 Jan 2024 10:39:36 +0900 Subject: [PATCH 14/16] Release version 0.15.36 Changes: - Fix std=c++14 for gtest 1.14.0 version upgrade Change-Id: Icaacbb7854b20e3db939d39f5aa09a1e92dd1c92 Signed-off-by: Sangyoon Jang --- packaging/wgt-backend.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/wgt-backend.spec b/packaging/wgt-backend.spec index a85906d..6649f99 100644 --- a/packaging/wgt-backend.spec +++ b/packaging/wgt-backend.spec @@ -1,6 +1,6 @@ Name: wgt-backend Summary: Application installer backend for WGT -Version: 0.15.35 +Version: 0.15.36 Release: 1 Group: Application Framework/Package Management License: Apache-2.0 -- 2.7.4 From e5c054240bbf15e8840e719c095e8107468bf4cc Mon Sep 17 00:00:00 2001 From: Sangyoon Jang Date: Mon, 5 Feb 2024 13:18:55 +0900 Subject: [PATCH 15/16] Fix build error Change-Id: I6e23fe8404c71bbc0f920bcb30004fb7e0dfcf0c Signed-off-by: Sangyoon Jang --- src/wgt_backend/wgt_backend.cc | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/src/wgt_backend/wgt_backend.cc b/src/wgt_backend/wgt_backend.cc index 54c070f..ba42bca 100644 --- a/src/wgt_backend/wgt_backend.cc +++ b/src/wgt_backend/wgt_backend.cc @@ -6,6 +6,7 @@ #include #include #include +#include #include "hybrid/hybrid_installer.h" #include "hybrid/hybrid_installer_factory.h" @@ -15,17 +16,6 @@ namespace ci = common_installer; -#if __cplusplus < 201300L -namespace { - -template -std::unique_ptr make_unique(Args&&... args) { - return std::unique_ptr(new T(std::forward(args)...)); -} - -} // namespace -#endif - int main(int argc, char** argv) { ci::PkgmgrInstaller pkgmgr_installer; std::shared_ptr query_interface( @@ -39,20 +29,17 @@ int main(int argc, char** argv) { return EINVAL; } -#if __cplusplus >= 201300L - using std; -#endif // This is workaround for hybrid apps as they requires much different flow // but installer does not branch at all in current design if (query_interface->IsHybridApplication( pkgmgr->GetRequestInfo(), pkgmgr->GetUid())) { LOG(INFO) << "Hybrid package detected"; ci::InstallerRunner runner( - make_unique(), pkgmgr); + std::make_unique(), pkgmgr); return (runner.Run() == ci::AppInstaller::Result::OK) ? 0 : 1; } else { ci::InstallerRunner runner( - make_unique(), pkgmgr); + std::make_unique(), pkgmgr); return (runner.Run() == ci::AppInstaller::Result::OK) ? 0 : 1; } } catch(...) { -- 2.7.4 From 8801f960e4f4025f3312d24ad8a8604650fca134 Mon Sep 17 00:00:00 2001 From: Sangyoon Jang Date: Mon, 5 Feb 2024 13:19:14 +0900 Subject: [PATCH 16/16] Release version 0.15.37 Changes: - Fix build error Change-Id: I97ad9081a89749565cb1130a44dde8822007e4ac Signed-off-by: Sangyoon Jang --- packaging/wgt-backend.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/wgt-backend.spec b/packaging/wgt-backend.spec index 6649f99..30f5094 100644 --- a/packaging/wgt-backend.spec +++ b/packaging/wgt-backend.spec @@ -1,6 +1,6 @@ Name: wgt-backend Summary: Application installer backend for WGT -Version: 0.15.36 +Version: 0.15.37 Release: 1 Group: Application Framework/Package Management License: Apache-2.0 -- 2.7.4