From 7fe1f15edd6b52c5c183daa3988ed9b9219fac54 Mon Sep 17 00:00:00 2001 From: houchengqiu Date: Mon, 22 May 2023 16:12:08 +0800 Subject: [PATCH] [libfreerdp] add null pointer check in planar_decompress() In Windows remote run vulnerabillities exe program, to create rdpgrfx channel, may case Remmina crash. So, add null pointer check to pSrcData. --- libfreerdp/codec/planar.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libfreerdp/codec/planar.c b/libfreerdp/codec/planar.c index e60deb902..945b30196 100644 --- a/libfreerdp/codec/planar.c +++ b/libfreerdp/codec/planar.c @@ -715,11 +715,20 @@ BOOL planar_decompress(BITMAP_PLANAR_CONTEXT* planar, const BYTE* pSrcData, UINT const UINT32 h = MIN(nSrcHeight, nDstHeight); const primitives_t* prims = primitives_get(); + WINPR_ASSERT(planar); + WINPR_ASSERT(prims); + if (nDstStep <= 0) nDstStep = nDstWidth * FreeRDPGetBytesPerPixel(DstFormat); srcp = pSrcData; + if (!pSrcData) + { + WLog_ERR(TAG, "Invalid argument pSrcData=NULL"); + return FALSE; + } + if (!pDstData) { WLog_ERR(TAG, "Invalid argument pDstData=NULL");