From 2dd38aaeef5ed81cb9eac6c5aa0ee1185398a352 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Mon, 25 Aug 2025 16:25:15 +0200 Subject: [PATCH] [proxy,channels] drop drdynvc packets not tracked When receiving dynamic channel packets that do not belong to an open channel drop the packet. --- server/proxy/channels/pf_channel_drdynvc.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/server/proxy/channels/pf_channel_drdynvc.c b/server/proxy/channels/pf_channel_drdynvc.c index 3ee932896..79621c533 100644 --- a/server/proxy/channels/pf_channel_drdynvc.c +++ b/server/proxy/channels/pf_channel_drdynvc.c @@ -508,9 +508,9 @@ static PfChannelResult DynvcTrackerHandleCmdDATA(ChannelStateTracker* tracker, isBackData ? &dynChannel->backTracker : &dynChannel->frontTracker; if (dynChannel->openStatus != CHANNEL_OPENSTATE_OPENED) { - DynvcTrackerLog(dynChannelContext->log, WLOG_ERROR, dynChannel, cmd, isBackData, - "channel is not opened"); - return PF_CHANNEL_RESULT_ERROR; + DynvcTrackerLog(dynChannelContext->log, WLOG_WARN, dynChannel, cmd, isBackData, + "channel is not opened, dropping packet"); + return PF_CHANNEL_RESULT_DROP; } switch (cmd) @@ -673,6 +673,8 @@ static PfChannelResult DynvcTrackerHandleCmd(ChannelStateTracker* tracker, return channelTracker_flushCurrent(tracker, firstPacket, lastPacket, !isBackData); default: + DynvcTrackerLog(dynChannelContext->log, WLOG_ERROR, dynChannel, cmd, isBackData, + "Invalid command ID"); return PF_CHANNEL_RESULT_ERROR; } }