]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
smb: update to der-parser 0.5.1
authorVictor Julien <victor@inliniac.net>
Fri, 2 Mar 2018 16:19:18 +0000 (17:19 +0100)
committerVictor Julien <victor@inliniac.net>
Mon, 12 Mar 2018 14:34:43 +0000 (15:34 +0100)
rust/Cargo.toml.in
rust/src/smb/auth.rs

index 55ae38997c699b366da2affa06b897587f86531a..9bc2198cfb73f9576f67bfb2b9b6de3ee44c4fb5 100644 (file)
@@ -18,6 +18,6 @@ debug = []
 nom = "~3.2.1"
 libc = "^0.2.36"
 crc = "~1.7.0"
-der-parser = "0.5.0"
+der-parser = "0.5.1"
 
 ntp-parser = { version = "^0", optional = true }
index 491818315c9beaf118273af3157c6afc5822608f..f34f25ae415d6db0beab927d7f54771af89a328d 100644 (file)
@@ -62,18 +62,17 @@ fn parse_kerberos5_request_ticket(blob: &[u8]) -> IResult<&[u8], Kerberos5Ticket
     SCLogDebug!("parse_kerberos5_request_ticket: sname {:?}", ticket_vec[2]);
     SCLogDebug!("parse_kerberos5_request_ticket: enc-part {:?}", ticket_vec[3]);
 
-// TODO switch to parser_der_genericstring when der-parser 0.5.1 is out
-    let realm = match der_parser::parse_der(ticket_vec[1].content.as_slice().unwrap()) {
-        IResult::Done(_, o) => o,
-        IResult::Incomplete(needed) => {
-            SCLogDebug!("parse_kerberos5_request_ticket: needed {:?}", needed);
-            return IResult::Incomplete(needed);
-        },
-        IResult::Error(err) => {
-            SCLogDebug!("parse_kerberos5_request_ticket: err {:?}", err);
-            return IResult::Error(err);
+    let gs = match ticket_vec[1].content.as_slice() {
+        Ok(s) => s,
+        Err(_) => {
+            return IResult::Error(error_code!(ErrorKind::Custom(SECBLOB_KRB_FMT_ERR)));
         },
     };
+    let realm = match der_parser::parse_der_generalstring(gs) {
+        IResult::Done(_, o) => o,
+        IResult::Incomplete(needed) => { return IResult::Incomplete(needed); },
+        IResult::Error(err) => { return IResult::Error(err); },
+    };
     SCLogDebug!("parse_kerberos5_request_ticket: realm {:?}", realm);
 
     if !(realm.class == 0 && realm.structured == 0 && realm.tag == 27) {