From c9739a3a230e3df34c81298890f041f7f44f279c Mon Sep 17 00:00:00 2001 From: Marek Safar Date: Thu, 19 Feb 2015 12:55:16 +0100 Subject: [PATCH] Fix a bug when setting capacity to 0 on MemoryStream causes crash on ToArray call --- mcs/class/referencesource/mscorlib/system/io/memorystream.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mcs/class/referencesource/mscorlib/system/io/memorystream.cs b/mcs/class/referencesource/mscorlib/system/io/memorystream.cs index 61c64d9276e..d5f9b48606b 100644 --- a/mcs/class/referencesource/mscorlib/system/io/memorystream.cs +++ b/mcs/class/referencesource/mscorlib/system/io/memorystream.cs @@ -580,6 +580,11 @@ namespace System.IO { } public virtual byte[] ToArray() { +#if MONO + // Bug fix for BCL bug when _buffer is null + if (_length - _origin == 0) + return EmptyArray.Value; +#endif BCLDebug.Perf(_exposable, "MemoryStream::GetBuffer will let you avoid a copy."); byte[] copy = new byte[_length - _origin]; Buffer.InternalBlockCopy(_buffer, _origin, copy, 0, _length - _origin); -- 2.11.4.GIT