Fix double free 39/203739/1
authorSangyoon Jang <jeremy.jang@samsung.com>
Wed, 17 Apr 2019 08:35:05 +0000 (17:35 +0900)
committerSangyoon Jang <jeremy.jang@samsung.com>
Wed, 17 Apr 2019 08:35:05 +0000 (17:35 +0900)
Change-Id: I724a8e0a7bd8ab6608ba511daff41b2796f4fab8
Signed-off-by: Sangyoon Jang <jeremy.jang@samsung.com>
src/wgt/step/security/step_check_extension_privileges.cc

index 281c47e..b5330bd 100755 (executable)
@@ -62,7 +62,7 @@ common_installer::Step::Status StepCheckExtensionPrivileges::process() {
     }
   }
   GList* privileges = nullptr;
-  BOOST_SCOPE_EXIT_ALL(&) {
+  BOOST_SCOPE_EXIT_ALL(privileges) {
     g_list_free_full(privileges, &common_installer::FreePrivilegeX);
   };
   for (auto it = xmlFiles.begin(); it != xmlFiles.end(); ++it) {
@@ -75,21 +75,18 @@ common_installer::Step::Status StepCheckExtensionPrivileges::process() {
             reinterpret_cast<privilege_x*>(calloc(1, sizeof(privilege_x)));
         if (!privilege) {
           LOG(ERROR) << "Out of memory";
-          g_list_free_full(privileges, &common_installer::FreePrivilegeX);
           return Status::ERROR;
         }
         privilege->type = strdup(common_installer::kWebPrivilegeType);
         if (!privilege->type) {
           LOG(ERROR) << "Out of memory";
           common_installer::FreePrivilegeX(privilege);
-          g_list_free_full(privileges, &common_installer::FreePrivilegeX);
           return Status::ERROR;
         }
         privilege->value = strdup(priv.c_str());
         if (!privilege->value) {
           LOG(ERROR) << "Out of memory";
           common_installer::FreePrivilegeX(privilege);
-          g_list_free_full(privileges, &common_installer::FreePrivilegeX);
           return Status::ERROR;
         }
         privileges = g_list_append(privileges, privilege);