Avoid harmless left-shifts of negative numbers in the zipfile extension

when building ZIP archives of files with pre-DOS dates.

FossilOrigin-Name: 16bba8650cc24a0fd606944422bb31f2b8bdbe0a5a483678989e400b751eab4d
This commit is contained in:
drh 2018-03-10 12:53:20 +00:00
parent ef29f73479
commit 70acb0aa6b
3 changed files with 13 additions and 9 deletions

View File

@ -751,8 +751,12 @@ static void zipfileMtimeToDos(ZipfileCDS *pCds, u32 mUnixTime){
min = (mUnixTime % (60*60)) / 60;
sec = (mUnixTime % 60);
pCds->mDate = (u16)(day + (mon << 5) + ((yr-1980) << 9));
pCds->mTime = (u16)(sec/2 + (min<<5) + (hr<<11));
if( yr>=1980 ){
pCds->mDate = (u16)(day + (mon << 5) + ((yr-1980) << 9));
pCds->mTime = (u16)(sec/2 + (min<<5) + (hr<<11));
}else{
pCds->mDate = pCds->mTime = 0;
}
assert( mUnixTime<315507600
|| mUnixTime==zipfileMtime(pCds)

View File

@ -1,5 +1,5 @@
C Fix\sthe\szipfile\sextension\sso\sthat\sit\sis\sable\sto\screate\ssymbolic\slink\sentries\nin\sthe\sZIP\sfile\seven\son\ssystems\slike\sWin32\sthat\sdo\snot\ssupport\ssymbolic\slinks\non\sthe\snative\sfilesystem.
D 2018-03-10T12:34:08.954
C Avoid\sharmless\sleft-shifts\sof\snegative\snumbers\sin\sthe\szipfile\sextension\nwhen\sbuilding\sZIP\sarchives\sof\sfiles\swith\spre-DOS\sdates.
D 2018-03-10T12:53:20.192
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F Makefile.in 7016fc56c6b9bfe5daac4f34be8be38d8c0b5fab79ccbfb764d3b23bf1c6fff3
@ -304,7 +304,7 @@ F ext/misc/vfsstat.c bf10ef0bc51e1ad6756629e1edb142f7a8db1178
F ext/misc/vtablog.c 31d0d8f4406795679dcd3a67917c213d3a2a5fb3ea5de35f6e773491ed7e13c9
F ext/misc/vtshim.c 1976e6dd68dd0d64508c91a6dfab8e75f8aaf6cd
F ext/misc/wholenumber.c 784b12543d60702ebdd47da936e278aa03076212
F ext/misc/zipfile.c ac84e5d65715746936d1c04ce172af0fbedb548823edd0cf33a76a2c0404e684
F ext/misc/zipfile.c 1a234c4e822a11e2e5aa6d402309b527e34e0813dba1b34d2723f050862864d2
F ext/misc/zorder.c b0ff58fa643afa1d846786d51ea8d5c4b6b35aa0254ab5a82617db92f3adda64
F ext/rbu/rbu.c ea7d1b7eb44c123a2a619332e19fe5313500705c4a58aaa1887905c0d83ffc2e
F ext/rbu/rbu1.test 43836fac8c7179a358eaf38a8a1ef3d6e6285842
@ -1712,7 +1712,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P 3c2e3c2d3dd5d951099ad8d9f74d3c20dae11dd5615d86a6e2283b28ff5b19aa
R e466aae4911321d84355a45be2eb40b1
P 2a4493f4ad2d09c1097e98e7086623669f3f252571884d515e51a98b1c6855e1
R b996514daf8ccd4118140541121adf76
U drh
Z 99fcb9daa2a8873fb80c767ff438d914
Z 3a20f1e017065f65b485c6880eea221e

View File

@ -1 +1 @@
2a4493f4ad2d09c1097e98e7086623669f3f252571884d515e51a98b1c6855e1
16bba8650cc24a0fd606944422bb31f2b8bdbe0a5a483678989e400b751eab4d