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: beonit <beonit@gmail.com> Change-Id: Id101794fa08218d15f2d1ba4e4a313c1807ea7aa
This commit is contained in:
parent
bb51fbc4d4
commit
0e99a2f79a
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue