From 1bb933b991cbe71e444efc3e0b65f7fad8541682 Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Tue, 7 May 2019 13:46:24 +0200 Subject: [PATCH] Fixed missing argument checks. The arguments for rdpgfx_send_frame_acknowledge_pdu must be checked as in some call stacks they might be NULL. --- channels/rdpgfx/client/rdpgfx_main.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/channels/rdpgfx/client/rdpgfx_main.c b/channels/rdpgfx/client/rdpgfx_main.c index 4fc117e..dcf6cbe 100644 --- a/channels/rdpgfx/client/rdpgfx_main.c +++ b/channels/rdpgfx/client/rdpgfx_main.c @@ -258,8 +258,22 @@ static UINT rdpgfx_send_frame_acknowledge_pdu(RdpgfxClientContext* context, UINT error; wStream* s; RDPGFX_HEADER header; - RDPGFX_PLUGIN* gfx = (RDPGFX_PLUGIN*) context->handle; - RDPGFX_CHANNEL_CALLBACK* callback = gfx->listener_callback->channel_callback; + RDPGFX_PLUGIN* gfx; + RDPGFX_CHANNEL_CALLBACK* callback; + + if (!context || !pdu) + return ERROR_BAD_ARGUMENTS; + + gfx = (RDPGFX_PLUGIN*) context->handle; + + if (!gfx) + return ERROR_BAD_CONFIGURATION; + + callback = gfx->listener_callback->channel_callback; + + if (!callback) + return ERROR_BAD_CONFIGURATION; + header.flags = 0; header.cmdId = RDPGFX_CMDID_FRAMEACKNOWLEDGE; header.pduLength = RDPGFX_HEADER_SIZE + 12; -- 2.7.4