Fix a bug: uncompressed and compressed zip64 EF data was written in incorrect order. Reported by Dmytro Rybachenko.
diff --git a/THANKS b/THANKS index cf73aa8..14472cf 100644 --- a/THANKS +++ b/THANKS
@@ -13,6 +13,7 @@ Coverity <info@coverity.com> Dane Springmeyer <dane.springmeyer@gmail.com> Del Merritt <del@alum.mit.edu> +Dmytro Rybachenko François Simon <AT.GFI.Francois.SIMON@sesam-vitale.fr> Heiko Hund <heiko@ist.eigentlich.net> Jan Weiß <jan@geheimwerk.de>
diff --git a/lib/zip_dirent.c b/lib/zip_dirent.c index 6568517..db051b5 100644 --- a/lib/zip_dirent.c +++ b/lib/zip_dirent.c
@@ -666,10 +666,10 @@ } else { if ((flags & ZIP_FL_FORCE_ZIP64) || de->comp_size > ZIP_UINT32_MAX || de->uncomp_size > ZIP_UINT32_MAX || de->offset > ZIP_UINT32_MAX) { - if (de->comp_size >= ZIP_UINT32_MAX) - _zip_poke8(de->comp_size, &ef_zip64_p); if (de->uncomp_size >= ZIP_UINT32_MAX) _zip_poke8(de->uncomp_size, &ef_zip64_p); + if (de->comp_size >= ZIP_UINT32_MAX) + _zip_poke8(de->comp_size, &ef_zip64_p); if (de->offset >= ZIP_UINT32_MAX) _zip_poke8(de->offset, &ef_zip64_p); }