From a75d89d615dec46f96e7dff6201b71bd4f88afa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= Date: Thu, 12 May 2016 14:24:53 -0400 Subject: [PATCH] libfreerdp-codec: make proper xcrush context reset fix --- libfreerdp/codec/xcrush.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/libfreerdp/codec/xcrush.c b/libfreerdp/codec/xcrush.c index dbb5a3bb2..837015210 100644 --- a/libfreerdp/codec/xcrush.c +++ b/libfreerdp/codec/xcrush.c @@ -816,6 +816,12 @@ int xcrush_decompress(XCRUSH_CONTEXT* xcrush, BYTE* pSrcData, UINT32 SrcSize, BY pSrcData += 2; SrcSize -= 2; + if (flags & PACKET_FLUSHED) + { + ZeroMemory(xcrush->HistoryBuffer, xcrush->HistoryBufferSize); + xcrush->HistoryOffset = 0; + } + if (!(Level2ComprFlags & PACKET_COMPRESSED)) { pDstData = pSrcData; @@ -826,11 +832,6 @@ int xcrush_decompress(XCRUSH_CONTEXT* xcrush, BYTE* pSrcData, UINT32 SrcSize, BY return status; } - if (Level2ComprFlags & PACKET_FLUSHED) - { - //xcrush_context_reset(xcrush, FALSE); - } - status = mppc_decompress(xcrush->mppc, pSrcData, SrcSize, &pDstData, &DstSize, Level2ComprFlags); if (status < 0)