]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
rfb: also set unimplemented auth types 9235/head 9249/head
authorSascha Steinbiss <satta@debian.org>
Fri, 30 Jun 2023 08:16:45 +0000 (10:16 +0200)
committerSascha Steinbiss <satta@debian.org>
Fri, 14 Jul 2023 08:48:31 +0000 (10:48 +0200)
(cherry picked from commit 1521b77edd04921a9b5f9419f84c62a812315e7a)

rust/src/rfb/rfb.rs

index 926ea1361447156526103a1ab217ef02db9832b6..14219b04b34bf0e4a1f62bcc83aea8802e7a55b2 100644 (file)
@@ -228,6 +228,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,
@@ -244,13 +253,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(nom::Err::Incomplete(_)) => {
                             return AppLayerResult::incomplete(