Perfecto, veo que te diste cuenta de que otra instrucción había que cambiar.
Yo lo dejaría así:
Código Delphi
[-]
GetMem(Buffer,FBuffer);
...
BytesRead:= Stream.Read(Buffer^, FBuffer);
Y limitaría el valor de FBuffer entre 1024 y 8*1024*1024, es decir entre 1KB y 8MB. Un rango bastante razonable.