[fpc-devel] Overflow in TMemoryStream?
Martin Schreiber
mse00000 at gmail.com
Sun Sep 11 10:35:37 CEST 2016
Hi,
While working on the MSEgui fork of classes unit I saw a suspect piece of code
in streams.inc:
"
function TMemoryStream.Realloc(var NewCapacity: PtrInt): Pointer;
begin
If NewCapacity<0 Then
NewCapacity:=0
else
begin
// if growing, grow at least a quarter
if (NewCapacity>FCapacity) and (NewCapacity < (5*FCapacity) div 4) then
NewCapacity := (5*FCapacity) div 4;
"
Isn't there an overflow if the capacity grows above high(ptrint) div 5 (about
430MB on 32 bit)?
IIRC there was a discussion on the list about memory problems with big
TMemoryStream's.
Martin
More information about the fpc-devel
mailing list