From 70e437dbebf5edb527283a12683a3caa34686def Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Thu, 27 Jul 2023 09:49:04 +0200 Subject: [PATCH] [channels,echo] assertions and warning fixes --- channels/echo/client/echo_main.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/channels/echo/client/echo_main.c b/channels/echo/client/echo_main.c index 1a818b24d..49241f984 100644 --- a/channels/echo/client/echo_main.c +++ b/channels/echo/client/echo_main.c @@ -25,6 +25,7 @@ #include #include +#include #include #include "echo_main.h" @@ -48,10 +49,17 @@ static UINT echo_on_data_received(IWTSVirtualChannelCallback* pChannelCallback, { GENERIC_CHANNEL_CALLBACK* callback = (GENERIC_CHANNEL_CALLBACK*)pChannelCallback; const BYTE* pBuffer = Stream_ConstPointer(data); - UINT32 cbSize = Stream_GetRemainingLength(data); + const size_t cbSize = Stream_GetRemainingLength(data); + + WINPR_ASSERT(callback); + WINPR_ASSERT(callback->channel); + WINPR_ASSERT(callback->channel->Write); + + if (cbSize > UINT32_MAX) + return ERROR_INVALID_PARAMETER; /* echo back what we have received. ECHO does not have any message IDs. */ - return callback->channel->Write(callback->channel, cbSize, pBuffer, NULL); + return callback->channel->Write(callback->channel, (ULONG)cbSize, pBuffer, NULL); } /**