]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
rfb: also set unimplemented auth types
authorSascha Steinbiss <satta@debian.org>
Fri, 30 Jun 2023 08:16:45 +0000 (10:16 +0200)
committerVictor Julien <vjulien@oisf.net>
Wed, 5 Jul 2023 04:41:22 +0000 (06:41 +0200)
rust/src/rfb/rfb.rs

index a3c89c31dfb3832a0ad8caf0e862c8b6cb6a1047..8c3381345012077a431c0d0853bff3733f9dc214 100644 (file)
@@ -240,6 +240,15 @@ impl RFBState {
                             current = rem;
 
                             let chosen_security_type = request.security_type;
+
+                            if let Some(current_transaction) = self.get_current_tx() {
+                                current_transaction.ts_security_type_selection = Some(request);
+                                current_transaction.chosen_security_type =
+                                    Some(chosen_security_type as u32);
+                            } else {
+                                debug_validate_fail!("no transaction set at security type stage");
+                            }
+
                             match chosen_security_type {
                                 2 => self.state = parser::RFBGlobalState::TCVncChallenge,
                                 1 => self.state = parser::RFBGlobalState::TSClientInit,
@@ -256,14 +265,6 @@ impl RFBState {
                                     return AppLayerResult::ok();
                                 }
                             }
-
-                            if let Some(current_transaction) = self.get_current_tx() {
-                                current_transaction.ts_security_type_selection = Some(request);
-                                current_transaction.chosen_security_type =
-                                    Some(chosen_security_type as u32);
-                            } else {
-                                debug_validate_fail!("no transaction set at security type stage");
-                            }
                         }
                         Err(Err::Incomplete(_)) => {
                             return AppLayerResult::incomplete(