diff options
-rw-r--r-- | archival/unzip.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/archival/unzip.c b/archival/unzip.c index e4c824850..c250d7555 100644 --- a/archival/unzip.c +++ b/archival/unzip.c | |||
@@ -163,7 +163,14 @@ enum { zip_fd = 3 }; | |||
163 | 163 | ||
164 | #if ENABLE_DESKTOP | 164 | #if ENABLE_DESKTOP |
165 | 165 | ||
166 | #define PEEK_FROM_END 16384 | 166 | /* Seen in the wild: |
167 | * Self-extracting PRO2K3XP_32.exe contains 19078464 byte zip archive, | ||
168 | * where CDE was nearly 48 kbytes before EOF. | ||
169 | * (Surprisingly, it also apparently has *another* CDE structure | ||
170 | * closer to the end, with bogus cdf_offset). | ||
171 | * To make extraction work, bumped PEEK_FROM_END from 16k to 64k. | ||
172 | */ | ||
173 | #define PEEK_FROM_END (64*1024) | ||
167 | 174 | ||
168 | /* NB: does not preserve file position! */ | 175 | /* NB: does not preserve file position! */ |
169 | static uint32_t find_cdf_offset(void) | 176 | static uint32_t find_cdf_offset(void) |