From e7f8c05bb606d71bc4e0841014ab0fc902009fa0 Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Fri, 3 Nov 2023 14:52:33 +0100 Subject: [PATCH] [channel,rdpdr] relax state checks ClientID confirm message might be sent async to userloggedon. So allow these messages to arrive in any order --- channels/rdpdr/client/rdpdr_main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/channels/rdpdr/client/rdpdr_main.c b/channels/rdpdr/client/rdpdr_main.c index bda07d0c2..3b4d9c31f 100644 --- a/channels/rdpdr/client/rdpdr_main.c +++ b/channels/rdpdr/client/rdpdr_main.c @@ -1668,8 +1668,9 @@ static BOOL rdpdr_check_channel_state(rdpdrPlugin* rdpdr, UINT16 packetid) return rdpdr_state_check(rdpdr, packetid, RDPDR_CHANNEL_STATE_SERVER_CAPS, 1, RDPDR_CHANNEL_STATE_NAME_REQUEST); case PAKID_CORE_CLIENTID_CONFIRM: - return rdpdr_state_check(rdpdr, packetid, RDPDR_CHANNEL_STATE_CLIENTID_CONFIRM, 1, - RDPDR_CHANNEL_STATE_CLIENT_CAPS); + return rdpdr_state_check(rdpdr, packetid, RDPDR_CHANNEL_STATE_CLIENTID_CONFIRM, 3, + RDPDR_CHANNEL_STATE_CLIENT_CAPS, RDPDR_CHANNEL_STATE_READY, + RDPDR_CHANNEL_STATE_USER_LOGGEDON); case PAKID_CORE_USER_LOGGEDON: if (!rdpdr_check_extended_pdu_flag(rdpdr, RDPDR_USER_LOGGEDON_PDU)) return FALSE;