https://bugzilla.novell.com/show_bug.cgi?id=644654
https://bugzilla.novell.com/show_bug.cgi?id=644654#c0 Summary: CryptoStream violates IDispose pattern Classification: Mono Product: Mono: Class Libraries Version: 2.6.x Platform: All OS/Version: All Status: NEW Severity: Normal Priority: P5 - None Component: Mono.Security AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 ( .NET CLR 3.5.30729; .NET4.0E) CryptoStream seems to violate the IDispose pattern and System.IO.Stream, and differs from the implementation on .NET. The problem might be due to CryptoStream overriding Stream.Close instead of doing it cleanup in Dispose(bool). This would also remove the need for CryptoStream.Clear which I'm not sure where its called from. Reproducible: Always Steps to Reproduce: Here is a test case that shows the problem. private class MyCryptoStream : CryptoStream { public MyCryptoStream(Stream stream, ICryptoTransform transform) : base(stream, transform, CryptoStreamMode.Read) { } protected override void Dispose(bool disposing) { base.Dispose(disposing); // This is called on .NET, but not on Mono. Console.WriteLine("MyCryptoStream.Dispose({0}) called", disposing); } } [Test] public void CryptoStreamDescendant() { using (MemoryStream mem = new MemoryStream(new byte[] { 1, 2, 3 }, false)) using (MyCryptoStream cs = new MyCryptoStream(mem, SHA1.Create())) { } } -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
