Also beim TZipFile sehe ich auf die Schnelle keinen Grund wieso es da einen Integerüberlauf geben sollte, da dort mit Int64 gearbeitet wird.
Hatte ich auch erst vermutet, aber -
TCustomZStream arbeitet intern nur mit 32-Bit (siehe
total_out):
Delphi-Quellcode:
z_stream = record
next_in: PByte; // next input byte
avail_in: Cardinal; // number of bytes available at next_in
total_in: LongWord; // total nb of input bytes read so far
next_out: PByte; // next output byte will go here
avail_out: Cardinal; // remaining free space at next_out
total_out: LongWord; // total nb of bytes output so far
msg: MarshaledAString; // last error message, NULL if no error
state: Pinternal_state; // not visible by applications
zalloc: alloc_func; // used to allocate the internal state
zfree: free_func; // used to free the internal state
opaque: Pointer; // private data object passed to zalloc and zfree
data_type: Integer; // best guess about the data type: binary or text
// for deflate, or the decoding state for inflate
adler: LongWord; // Adler-32 or CRC-32 value of the uncompressed data
reserved: LongWord; // reserved for future use
end;