diff --git a/channels/urbdrc/client/data_transfer.c b/channels/urbdrc/client/data_transfer.c index 806d989d8..c715db0d7 100644 --- a/channels/urbdrc/client/data_transfer.c +++ b/channels/urbdrc/client/data_transfer.c @@ -1743,7 +1743,7 @@ UINT urbdrc_process_udev_data_transfer(URBDRC_CHANNEL_CALLBACK* callback, URBDRC len = Stream_GetRemainingLength(data); - if (Stream_GetRemainingCapacity(data) < 8) + if (len < 8) goto fail; Stream_Rewind_UINT32(data); diff --git a/channels/urbdrc/client/urbdrc_main.c b/channels/urbdrc/client/urbdrc_main.c index 64bf79efd..4bc3cfb5f 100644 --- a/channels/urbdrc/client/urbdrc_main.c +++ b/channels/urbdrc/client/urbdrc_main.c @@ -379,13 +379,10 @@ static UINT urbdrc_exchange_capabilities(URBDRC_CHANNEL_CALLBACK* callback, wStr UINT32 FunctionId; UINT32 InterfaceId; UINT error = CHANNEL_RC_OK; - URBDRC_PLUGIN* urbdrc; - if (!callback || !data || !callback->plugin) + if (!data) return ERROR_INVALID_PARAMETER; - urbdrc = (URBDRC_PLUGIN*)callback->plugin; - if (Stream_GetRemainingLength(data) < 8) return ERROR_INVALID_DATA;