• Joe Tsai's avatar
    archive/zip: fix handling of Info-ZIP Unix extended timestamps · 9697a119
    Joe Tsai authored
    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: 's avatarIan Lance Taylor <iant@golang.org>
    9697a119
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
context Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
plugin Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
vendor/golang_org/x Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
cmp.bash Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
naclmake.bash Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...