From 227efd34f369660e379625b3be0017653ac89a46 Mon Sep 17 00:00:00 2001 From: Bernhard Miklautz Date: Tue, 13 Dec 2016 15:36:05 +0100 Subject: [PATCH] rfx: fix possible segfault in error case --- libfreerdp/codec/rfx.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libfreerdp/codec/rfx.c b/libfreerdp/codec/rfx.c index 8e8fee3e8..92b99014c 100644 --- a/libfreerdp/codec/rfx.c +++ b/libfreerdp/codec/rfx.c @@ -1191,7 +1191,10 @@ BOOL rfx_process_message(RFX_CONTEXT* context, const BYTE* data, UINT32 length, if (!freerdp_image_copy(dst, dstFormat, dstStride, nXDst, nYDst, nWidth, nHeight, tile->data, context->pixel_format, stride, nXSrc, nYSrc, NULL, FREERDP_FLIP_NONE)) + { + region16_uninit(&updateRegion); goto fail; + } if (invalidRegion) region16_union_rect(invalidRegion, invalidRegion, &updateRects[j]); @@ -1207,7 +1210,6 @@ BOOL rfx_process_message(RFX_CONTEXT* context, const BYTE* data, UINT32 length, } fail: - region16_uninit(&updateRegion); Stream_Free(s, FALSE); rfx_message_free(context, message); return FALSE;