private void FixIncorrectStreamSize(Stream s, long l)
{
byte[] b = new byte[l];
long position = s.Position;
s.Seek(0, SeekOrigin.Begin);
if (s.Length >= l)
{
s.Read(b, 0, (int)l);
}
else
{
s.Read(b, 0, (int)s.Length);
}
MemoryStream newStream = new MemoryStream(b);
s = newStream;
s.Seek(position, SeekOrigin.Begin);
}