Modify database backup sequence
[platform/core/appfw/pkgmgr-tool.git] / src / pkg_upgrade / src / upgrader.cc
index 63e9fca..49543d1 100644 (file)
@@ -117,6 +117,18 @@ bool Upgrader::Process(PkgFinder* finder) {
     return false;
   }
 
+  // set the database permission to solve the case of using the backup database
+  // which the smack label is not applied properly
+  if (SetDbPermission(parser_db_) != 0) {
+    LOG(ERROR) << "SetDbPermission at parser_db failed";
+    return -1;
+  }
+
+  if (SetDbPermission(cert_db_) != 0) {
+    LOG(ERROR) << "SetDbPermission at cert_db failed";
+    return -1;
+  }
+
   PkgUpgraderFactory factory;
   auto list = factory.MakeList(finder);
 
@@ -391,6 +403,9 @@ int Upgrader::BackupFile(const string& src_path, const string& dest_path) {
     return -1;
   }
 
+  if (SetDbPermission(dest_path) != 0)
+    return -1;
+
   RemoveBackupFlag(src_path);
 
   return 0;
@@ -400,9 +415,6 @@ int Upgrader::BackupDb(const string& src_path, const string& dest_path) {
   if (BackupFile(src_path, dest_path) != 0)
     return -1;
 
-  if (SetDbPermission(dest_path) != 0)
-    return -1;
-
   return 0;
 }