Skip to content

Commit

Permalink
mqtt: fix consumed bytes computation for truncated msg
Browse files Browse the repository at this point in the history
Ticket: 5268
  • Loading branch information
catenacyber authored and victorjulien committed Apr 18, 2022
1 parent 3a7d09e commit 3b13008
Showing 1 changed file with 11 additions and 11 deletions.
22 changes: 11 additions & 11 deletions rust/src/mqtt/mqtt.rs
Original file line number Diff line number Diff line change
Expand Up @@ -438,7 +438,6 @@ impl MQTTState {
}

while current.len() > 0 {
let mut skipped = false;
SCLogDebug!("request: handling {}", current.len());
match parse_message(current, self.protocol_version, self.max_msg_len) {
Ok((rem, msg)) => {
Expand All @@ -450,17 +449,18 @@ impl MQTTState {
current.len()
);
if trunc.skipped_length >= current.len() {
skipped = true;
self.skip_request = trunc.skipped_length - current.len();
self.handle_msg(msg, true);
return AppLayerResult::ok();
} else {
consumed += trunc.skipped_length;
current = &current[trunc.skipped_length..];
self.handle_msg(msg, true);
self.skip_request = 0;
continue;
}
}
self.handle_msg(msg, false);
if skipped {
return AppLayerResult::ok();
}
consumed += current.len() - rem.len();
current = rem;
}
Expand Down Expand Up @@ -512,7 +512,6 @@ impl MQTTState {
}

while current.len() > 0 {
let mut skipped = false;
SCLogDebug!("response: handling {}", current.len());
match parse_message(current, self.protocol_version, self.max_msg_len as usize) {
Ok((rem, msg)) => {
Expand All @@ -524,18 +523,19 @@ impl MQTTState {
current.len()
);
if trunc.skipped_length >= current.len() {
skipped = true;
self.skip_response = trunc.skipped_length - current.len();
self.handle_msg(msg, true);
SCLogDebug!("skip_response now {}", self.skip_response);
return AppLayerResult::ok();
} else {
consumed += trunc.skipped_length;
current = &current[trunc.skipped_length..];
self.handle_msg(msg, true);
self.skip_response = 0;
continue;
}
SCLogDebug!("skip_response now {}", self.skip_response);
}
self.handle_msg(msg, true);
if skipped {
return AppLayerResult::ok();
}
consumed += current.len() - rem.len();
current = rem;
}
Expand Down

0 comments on commit 3b13008

Please sign in to comment.