diff --git a/rdp.c b/rdp.c index 9cda746..924aa99 100644 --- a/rdp.c +++ b/rdp.c @@ -58,7 +58,13 @@ rdp_recv(uint8 * type) rdp_s = sec_recv(&rdpver); if (rdp_s == NULL) return NULL; - if (rdpver != 3) + if (rdpver == 0xff) + { + g_next_packet = rdp_s->end; + *type = 0; + return rdp_s; + } + else if (rdpver != 3) { /* rdp5_process should move g_next_packet ok */ rdp5_process(rdp_s); diff --git a/secure.c b/secure.c index 95901d1..80c843f 100644 --- a/secure.c +++ b/secure.c @@ -853,7 +853,8 @@ sec_recv(uint8 * rdpver) if (channel != MCS_GLOBAL_CHANNEL) { channel_process(s, channel); - continue; + *rdpver = 0xff; + return s; } return s;