]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
ssh: avoid panic in packet path
authorPhilippe Antoine <pantoine@oisf.net>
Thu, 4 Jul 2024 07:21:29 +0000 (09:21 +0200)
committerVictor Julien <victor@inliniac.net>
Thu, 1 Aug 2024 05:05:13 +0000 (07:05 +0200)
use debug_validate_bug_on instead

rust/src/ssh/ssh.rs

index ce651de60db1aea8aae3828c657ec74acdc491cd..1d38a1bd50e1737ce6ca5777b55029ebc666bd78 100644 (file)
@@ -267,15 +267,12 @@ impl SSHState {
                         }
                         Err(Err::Incomplete(_)) => {
                             //we may have consumed data from previous records
-                            if input.len() < SSH_RECORD_HEADER_LEN {
-                                //do not trust nom incomplete value
-                                return AppLayerResult::incomplete(
-                                    (il - input.len()) as u32,
-                                    SSH_RECORD_HEADER_LEN as u32,
-                                );
-                            } else {
-                                panic!("SSH invalid length record header");
-                            }
+                            debug_validate_bug_on!(input.len() >= SSH_RECORD_HEADER_LEN);
+                            //do not trust nom incomplete value
+                            return AppLayerResult::incomplete(
+                                (il - input.len()) as u32,
+                                SSH_RECORD_HEADER_LEN as u32,
+                            );
                         }
                         Err(_e) => {
                             SCLogDebug!("SSH invalid record header {}", _e);