Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0e99a2f7 authored by beonit's avatar beonit Committed by Narayan Kamath
Browse files

libziparchive: fix calculation of mod_time.



Take mod_date into account as well, and fixes the issue where
all entries had creation dates in 1979.

Signed-off-by: default avatarbeonit <beonit@gmail.com>
Change-Id: Id101794fa08218d15f2d1ba4e4a313c1807ea7aa
parent bb51fbc4
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -588,7 +588,7 @@ static int32_t FindEntry(const ZipArchive* archive, const int ent,
  // and other interesting attributes from the central directory. These
  // will later be compared against values from the local file header.
  data->method = cdr->compression_method;
  data->mod_time = cdr->last_mod_time;
  data->mod_time = cdr->last_mod_date << 16 | cdr->last_mod_time;
  data->crc32 = cdr->crc32;
  data->compressed_length = cdr->compressed_size;
  data->uncompressed_length = cdr->uncompressed_size;
+1 −0
Original line number Diff line number Diff line
@@ -272,6 +272,7 @@ TEST(ziparchive, FindEntry) {
  ASSERT_EQ(static_cast<uint32_t>(17), data.uncompressed_length);
  ASSERT_EQ(static_cast<uint32_t>(13), data.compressed_length);
  ASSERT_EQ(0x950821c5, data.crc32);
  ASSERT_EQ(static_cast<uint32_t>(0x438a8005), data.mod_time);

  // An entry that doesn't exist. Should be a negative return code.
  ZipString absent_name;