From 3820858c636827bcb536e44d8da4bdde4ccd2bb1 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Thu, 25 Jul 2024 12:01:46 +0200 Subject: [PATCH] [server,proxy] discard closed dyn channel data If a dynamic channel does no longer exist or has been closed discard the channel data received from client --- server/proxy/channels/pf_channel_drdynvc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/proxy/channels/pf_channel_drdynvc.c b/server/proxy/channels/pf_channel_drdynvc.c index 9d8cab905..112d39941 100644 --- a/server/proxy/channels/pf_channel_drdynvc.c +++ b/server/proxy/channels/pf_channel_drdynvc.c @@ -311,9 +311,9 @@ static PfChannelResult DynvcTrackerPeekFn(ChannelStateTracker* tracker, BOOL fir */ dynChannel = (pServerDynamicChannelContext*)HashTable_GetItemValue( dynChannelContext->channels, &dynChannelId); - if (cmd != CREATE_REQUEST_PDU || !isBackData) + if ((cmd != CREATE_REQUEST_PDU) || !isBackData) { - if (!dynChannel) + if (!dynChannel || (dynChannel->openStatus == CHANNEL_OPENSTATE_CLOSED)) { /* we've not found the target channel, so we drop this chunk, plus all the rest of * the packet */