Merge "Handle the invalid timestamp in zipfile"

This commit is contained in:
Tianjie Xu 2020-04-16 04:33:35 +00:00 committed by Gerrit Code Review
commit 585ff01946
2 changed files with 4 additions and 2 deletions

View file

@ -48,9 +48,10 @@ struct ZipEntryCommon {
// Modification time. The zipfile format specifies
// that the first two little endian bytes contain the time
// and the last two little endian bytes contain the date.
// See `GetModificationTime`.
// See `GetModificationTime`. Use signed integer to avoid the
// sub-overflow.
// TODO: should be overridden by extra time field, if present.
uint32_t mod_time;
int32_t mod_time;
// Returns `mod_time` as a broken-down struct tm.
struct tm GetModificationTime() const;

View file

@ -1570,6 +1570,7 @@ bool ZipArchive::InitializeCentralDirectory(off64_t cd_start_offset, size_t cd_s
return true;
}
// This function returns the embedded timestamp as is; and doesn't perform validations.
tm ZipEntryCommon::GetModificationTime() const {
tm t = {};