libfreerdp-codec: make proper xcrush context reset fix
authorMarc-André Moreau <marcandre.moreau@gmail.com>
Thu, 12 May 2016 18:24:53 +0000 (14:24 -0400)
committerMarc-André Moreau <marcandre.moreau@gmail.com>
Thu, 12 May 2016 18:24:53 +0000 (14:24 -0400)
libfreerdp/codec/xcrush.c

index dbb5a3b..8370152 100644 (file)
@@ -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)