egfx: client: add missing NULL checks
authorKobi Mizrachi <kmizrachi18@gmail.com>
Sun, 1 Mar 2020 11:43:09 +0000 (13:43 +0200)
committerakallabeth <akallabeth@users.noreply.github.com>
Mon, 9 Mar 2020 07:28:40 +0000 (08:28 +0100)
channels/rdpgfx/client/rdpgfx_main.c

index d3d47a0..7bc25db 100644 (file)
@@ -112,7 +112,12 @@ static UINT rdpgfx_send_caps_advertise_pdu(RdpgfxClientContext* context,
        RDPGFX_CHANNEL_CALLBACK* callback;
        wStream* s;
        gfx = (RDPGFX_PLUGIN*)context->handle;
+
+       if (!gfx || !gfx->listener_callback)
+               return ERROR_BAD_ARGUMENTS;
+
        callback = gfx->listener_callback->channel_callback;
+
        header.flags = 0;
        header.cmdId = RDPGFX_CMDID_CAPSADVERTISE;
        header.pduLength = RDPGFX_HEADER_SIZE + 2;
@@ -374,7 +379,7 @@ static UINT rdpgfx_send_frame_acknowledge_pdu(RdpgfxClientContext* context,
 
        gfx = (RDPGFX_PLUGIN*)context->handle;
 
-       if (!gfx)
+       if (!gfx || !gfx->listener_callback)
                return ERROR_BAD_CONFIGURATION;
 
        callback = gfx->listener_callback->channel_callback;
@@ -429,7 +434,7 @@ static UINT rdpgfx_send_qoe_frame_acknowledge_pdu(RdpgfxClientContext* context,
 
        gfx = (RDPGFX_PLUGIN*)context->handle;
 
-       if (!gfx)
+       if (!gfx || !gfx->listener_callback)
                return ERROR_BAD_CONFIGURATION;
 
        callback = gfx->listener_callback->channel_callback;
@@ -482,7 +487,7 @@ static UINT rdpgfx_send_cache_import_offer_pdu(RdpgfxClientContext* context,
 
        gfx = (RDPGFX_PLUGIN*)context->handle;
 
-       if (!gfx)
+       if (!gfx || !gfx->listener_callback)
                return ERROR_BAD_CONFIGURATION;
 
        callback = gfx->listener_callback->channel_callback;