From 3e96f96153a0305c62f847c10b8fdc3036c7d24d Mon Sep 17 00:00:00 2001 From: Philippe Antoine Date: Thu, 1 Oct 2020 09:54:13 +0200 Subject: [PATCH] rdp: fix incomplete result Aggregating the consumed bytes --- rust/src/rdp/rdp.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/rust/src/rdp/rdp.rs b/rust/src/rdp/rdp.rs index 4a2c034dda..fac136b6e3 100644 --- a/rust/src/rdp/rdp.rs +++ b/rust/src/rdp/rdp.rs @@ -245,7 +245,14 @@ impl RdpState { Err(nom::Err::Failure(_)) | Err(nom::Err::Error(_)) => { if probe_tls_handshake(available) { self.tls_parsing = true; - return self.parse_ts(available); + let r = self.parse_ts(available); + if r.status == 1 { + //adds bytes already consumed to incomplete result + let consumed = (input.len() - available.len()) as u32; + return AppLayerResult::incomplete(r.consumed + consumed, r.needed); + } else { + return r; + } } else { return AppLayerResult::err(); } -- 2.47.2