]> Cypherpunks repositories - gostls13.git/commit
[release-branch.go1.10] archive/zip: fix handling of Info-ZIP Unix extended timestamps
authorJoe Tsai <joetsai@digital-static.net>
Fri, 23 Feb 2018 23:08:11 +0000 (15:08 -0800)
committerAndrew Bonventre <andybons@golang.org>
Thu, 29 Mar 2018 06:07:32 +0000 (06:07 +0000)
commit176900a7b74ad59a9307cc5232e708c6dfd7a9e3
treec7f4231a4b933144ad3f2a6edab77b4decd5335c
parente1c083459285490d853f7d983edbe596e7202c93
[release-branch.go1.10] archive/zip: fix handling of Info-ZIP Unix extended timestamps

The Info-ZIP Unix1 extra field is specified as such:
>>>
Value    Size   Description
-----    ----   -----------
0x5855   Short  tag for this extra block type ("UX")
TSize    Short  total data size for this block
AcTime   Long   time of last access (GMT/UTC)
ModTime  Long   time of last modification (GMT/UTC)
<<<

The previous handling was incorrect in that it read the AcTime field
instead of the ModTime field.

The test-osx.zip test unfortunately locked in the wrong behavior.
Manually parsing that ZIP file shows that the encoded MS-DOS
date and time are 0x4b5f and 0xa97d, which corresponds with a
date of 2017-10-31 21:11:58, which matches the correct mod time
(off by 1 second due to MS-DOS timestamp resolution).

Fixes #23901

Change-Id: I567824c66e8316b9acd103dbecde366874a4b7ef
Reviewed-on: https://go-review.googlesource.com/96895
Run-TryBot: Joe Tsai <joetsai@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-on: https://go-review.googlesource.com/102782
Run-TryBot: Andrew Bonventre <andybons@golang.org>
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
src/archive/zip/reader.go
src/archive/zip/reader_test.go