reader: fix corruption issue "forgetting" all-zero bytestrings, fixes #8963

This commit is contained in:
Thomas Waldmann 2025-07-28 23:08:12 +02:00
parent 85582f1b13
commit 9877fe91c9
No known key found for this signature in database
GPG key ID: 243ACFA951F78E01

View file

@ -303,10 +303,11 @@ class FileReader:
# For data chunks, add the actual data
result.extend(data[self.offset:self.offset + to_read])
else:
# For non-data chunks, add zeros if we've seen a data chunk
if has_data:
result.extend(b'\0' * to_read)
# Otherwise, we'll just track the size without adding data
# For non-data chunks, always add zeros to the result.
# We will only yield a CH_DATA chunk with the result bytes,
# if there was at least one CH_DATA chunk contributing to the result,
# otherwise we will yield a CH_HOLE or CH_ALLOC chunk.
result.extend(b'\0' * to_read)
bytes_read += to_read