Whats wrong with PresetFile::savePreset?

It seems to write the whole mBuffer (not fillsize, but the whole temporary buffer that is larger than fillSize - useful data) and writes that uninitialized data to my vstpreset file.
savePreset calls the following inside:

bool copyStream (IBStream* inStream, IBStream* outStream)
{
if (!inStream || !outStream)
return false;

int8 buffer[8192];
int32 read = 0;
int32 written = 0;
while (inStream->read (buffer, 8192, &read) == kResultTrue && read > 0) //gimme your 8192 bytes
{
if (outStream->write (buffer, read, &written) != kResultTrue)
{
return false;
}
}
return true;
}
Am I doing something wrong or is that bug that wasn’t find since long time?

inside Buffer:get (inside BufferStream::read)

uint32 Buffer::get (void* b, uint32 size)
{
uint32 maxGet = memSize - fillSize; memSize has 2048 bytes and fill is 10 bytes, I can give you only 2048-10 bytes, from end of useful data to end of temporary buffer! look below to the memcpy
if (size > maxGet)
size = maxGet;
if (size > 0)
memcpy (b, buffer + fillSize, size);
fillSize += size;
return size;
}

I set my seekg to 0 and I can copy from my beginning of useful data BUT to the end of temporary buffer…