Skip to content

Commit 31c4c93

Browse files
committed
Rework _validate_local_file_entry_sequence to allow passing no checked_offsets
1 parent 3d0240c commit 31c4c93

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

Lib/zipfile/__init__.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1564,19 +1564,21 @@ def _iter_scan_signature(self, fp, signature, start_offset, end_offset, chunk_si
15641564
remainder = chunk[-(sig_len - 1):]
15651565
pos += read_size
15661566

1567-
def _validate_local_file_entry_sequence(self, fp, start_offset, end_offset, checked_offsets):
1567+
def _validate_local_file_entry_sequence(self, fp, start_offset, end_offset, checked_offsets=None):
15681568
offset = start_offset
15691569

15701570
while offset < end_offset:
15711571
self._debug(3, 'checking local file entry at:', offset)
15721572

15731573
# Cache checked offsets to improve performance.
1574-
if offset in checked_offsets:
1575-
self._debug(3, 'read from checked cache:', offset)
1574+
try:
15761575
entry_size = checked_offsets[offset]
1577-
else:
1576+
except (KeyError, TypeError):
15781577
entry_size = self._validate_local_file_entry(fp, offset, end_offset)
1579-
checked_offsets[offset] = entry_size
1578+
if checked_offsets is not None:
1579+
checked_offsets[offset] = entry_size
1580+
else:
1581+
self._debug(3, 'read from checked cache:', offset)
15801582

15811583
if entry_size is None:
15821584
break

0 commit comments

Comments
 (0)