Remoting 数据流压缩报错

问题遇到的现象和发生背景

在使用Remoting通道压缩的时候借鉴了
https://www.cnblogs.com/openkava/archive/2007/08/10/850203.html
代码,一开始使用没有问题,但是偶尔遇到下面的异常情况,错误显示是压缩写入的时候数组越界,但是这是NZlib内部问题吗?我需要怎么解决。实际测试环境根本无法复现,只有生产环境才会出现这样的现象。如果可以通过升级解决的话,得弄清这个原因是啥?

/// <summary>
        /// 压缩数据流
        /// </summary>
        /// <param name="inStream"></param>
        /// <returns></returns>
        public static Stream getCompressedStreamCopy(Stream inStream) 
        {
            MemoryStream outStream = new MemoryStream();
            Deflater mDeflater = new Deflater(Deflater.BEST_COMPRESSION);
            DeflaterOutputStream compressStream = new DeflaterOutputStream(outStream,mDeflater);

            byte[] buf = new Byte[4096];
            int cnt = inStream.Read(buf,0,4096);
            while (cnt>0) {
                compressStream.Write(buf,0,cnt);
                cnt = inStream.Read(buf,0,4096);
            }
            compressStream.Finish();
            outStream.Seek(0,SeekOrigin.Begin);
            return outStream;
        }

问题相关代码,请勿粘贴截图

System.IndexOutOfRangeException:索引超出了数组界限。
Server stack trace:
在 NZlib.Compression.DeflaterHuffman.TallyLit(lnt32 lit)
在 NZlib.Compression.DeflaterEngine.DeflateFast(Boolean flush,Boolean finish)
在 NZlib.Compression.DeflaterEngine.Deflate(Boolean flush, Boolean finish)
在 Nzlib.Compression.Deflater.Deflate(Byte[] output, Int32 offset, Int32 length)
在 NZlib.Streams.DeflaterOutputStream.deflat()
在 NZlib.Streams. DeflaterOutputStream. Write(Byte [] buf, Int32 off, Int32 len)

Remoting.CompressionSinkCompressionHelper.getCompre
ssedStreamCopy(Stream inStream)

Remoting.CompressionSink.CompressionClientSink.ProcessMessage(IMessage msg, TransportHeaders requestHeaders,
Stream requestStream, ITransportHeaders& responseHeaders,Stream& responseStream)

System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(|Message msg) Exception rethrown at [0]:
System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage((Message reqMsg, IMessage retMsg)

System.Runtime.Remoting.Proxies.RealProxy.Privatelnvoke(MessageData&msgData, Int32 type)