[archive] Fix paths comparator for permissions dictionary. 67/234867/1
authorMichal Michalski <m.michalski2@partner.samsung.com>
Thu, 28 May 2020 11:47:22 +0000 (13:47 +0200)
committerPiotr Kosko <p.kosko@samsung.com>
Fri, 29 May 2020 08:58:26 +0000 (10:58 +0200)
[Verification] tct-archive-tizen-tests 100% pass rate on TM1 emulator.

Change-Id: I675857a5f1335d8fb28a623ff15edc2d6d1aa8b5
Signed-off-by: Michal Michalski <m.michalski2@partner.samsung.com>
src/archive/un_zip.h
src/archive/un_zip_extract_request.cc

index 06ae1fa274ed13708d1a11d42780d6cd497c301e..3780280254e677b2a048c2f8d493f649cd238370 100644 (file)
@@ -83,13 +83,7 @@ class UnZip {
   unzFile m_unzip;
   size_t m_default_buffer_size;
   bool m_is_open;
-
-  struct ComparePaths : public std::binary_function<bool, std::string, std::string> {
-    bool operator()(const std::string& lhs, const std::string& rhs) {
-      return lhs.length() > rhs.length();
-    }
-  };
-  std::map<std::string, __mode_t, ComparePaths> path_access_map;
+  std::map<std::string, __mode_t> path_access_map;
 
   friend class UnZipExtractRequest;
 };
index 4772c5c200292176be3ce5a44b662ed9648f4dfb..fc4de3ad669e0514e3aa197cb35bfacc3249fe2e 100644 (file)
@@ -216,7 +216,6 @@ PlatformResult UnZipExtractRequest::getCurrentFileInfo() {
                               getArchiveLogMessage(err, "unzGetCurrentFileInfo()"),
                               ("ret: %d", err));
   }
-
   LoggerD("Input from ZIP: m_filename_inzip: [%s]", m_filename_inzip);
   LoggerD("m_base_strip_path: [%s]", m_base_strip_path.c_str());
 
@@ -498,6 +497,7 @@ void UnZipExtractRequest::storePermissions() {
   // hold access information for later set
   // The high 16 bits of the external file attributes seem to be used for OS-specific permissions
   __mode_t mode = m_file_info.external_fa >> 16;
+  LoggerD("Storing permissions for %s: %u", m_filename_inzip, mode);
   // check if proper permission mode is provided, if not use default 0775
   if (mode == 0) {
     mode = S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH;