Merge "libziparchive: fix calculation of mod_time."

This commit is contained in:
Narayan Kamath 2015-10-30 10:03:28 +00:00 committed by Gerrit Code Review
commit b57cd14596
2 changed files with 2 additions and 1 deletions

View file

@ -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;

View file

@ -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;