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)