[PR #453] [MERGED] Fix for clients failing on just having a 64 bit offset in ZIP64 #1035

Open
opened 2026-01-29 22:18:45 +00:00 by claunia · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/adamhathcock/sharpcompress/pull/453
Author: @Lssikkes
Created: 5/24/2019
Status: Merged
Merged: 5/24/2019
Merged by: @adamhathcock

Base: masterHead: master


📝 Commits (1)

  • 78eb8fc Fix for clients that don't support ZIP64 standard correctly in case headers are only pointed to in ZIP64 directory structure

📊 Changes

1 file changed (+3 additions, -3 deletions)

View changed files

📝 src/SharpCompress/Writers/Zip/ZipCentralDirectoryEntry.cs (+3 -3)

📄 Description

Sorry Adam, while testing some bigger ZIP64 files I found a case where some archive tools don't accept having just 0xFFFFFFFF only for relative offset. This should fix that by also forcing it for compressed/decompressed size to make sure they read everything from the ZIP64 directory record when anything goes over uint32 max for that specific entry.

(according to the spec it's allowed - so technically the commit before was not wrong, but it's probably better to be on the safe side:
https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT
4.4.16 relative offset of local header: (4 bytes)

   This is the offset from the start of the first disk on
   which this file appears, to where the local header SHOULD
   be found.  If an archive is in ZIP64 format and the value
   in this field is 0xFFFFFFFF, the size will be in the 
   corresponding 8 byte zip64 extended information extra field.)

image

image


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/adamhathcock/sharpcompress/pull/453 **Author:** [@Lssikkes](https://github.com/Lssikkes) **Created:** 5/24/2019 **Status:** ✅ Merged **Merged:** 5/24/2019 **Merged by:** [@adamhathcock](https://github.com/adamhathcock) **Base:** `master` ← **Head:** `master` --- ### 📝 Commits (1) - [`78eb8fc`](https://github.com/adamhathcock/sharpcompress/commit/78eb8fcf92b89b172259a079f7092b10a83995bc) Fix for clients that don't support ZIP64 standard correctly in case headers are only pointed to in ZIP64 directory structure ### 📊 Changes **1 file changed** (+3 additions, -3 deletions) <details> <summary>View changed files</summary> 📝 `src/SharpCompress/Writers/Zip/ZipCentralDirectoryEntry.cs` (+3 -3) </details> ### 📄 Description Sorry Adam, while testing some bigger ZIP64 files I found a case where some archive tools don't accept having just 0xFFFFFFFF only for relative offset. This should fix that by also forcing it for compressed/decompressed size to make sure they read everything from the ZIP64 directory record when anything goes over uint32 max for that specific entry. (according to the spec it's allowed - so technically the commit before was not wrong, but it's probably better to be on the safe side: https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT 4.4.16 relative offset of local header: (4 bytes) This is the offset from the start of the first disk on which this file appears, to where the local header SHOULD be found. If an archive is in ZIP64 format and the value in this field is 0xFFFFFFFF, the size will be in the corresponding 8 byte zip64 extended information extra field.) ![image](https://user-images.githubusercontent.com/5462782/58343363-1454d500-7e53-11e9-9c9d-ea77c4339d90.png) ![image](https://user-images.githubusercontent.com/5462782/58343626-cb515080-7e53-11e9-812e-cee3c09fe1ef.png) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-29 22:18:45 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/sharpcompress#1035