From: Pierre Chifflier Date: Thu, 6 Feb 2020 20:45:39 +0000 (+0100) Subject: rust: use the streaming version of combinators to fix incomplete reads X-Git-Tag: suricata-6.0.0-beta1~697 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=442500678bd2c831f801ffb243e81813e2b10177;p=thirdparty%2Fsuricata.git rust: use the streaming version of combinators to fix incomplete reads --- diff --git a/rust/src/dhcp/parser.rs b/rust/src/dhcp/parser.rs index 3c82e466b7..f18aab389c 100644 --- a/rust/src/dhcp/parser.rs +++ b/rust/src/dhcp/parser.rs @@ -20,7 +20,7 @@ use std::cmp::min; use crate::dhcp::dhcp::*; use nom::IResult; use nom::combinator::rest; -use nom::number::complete::{be_u8, be_u16, be_u32}; +use nom::number::streaming::{be_u8, be_u16, be_u32}; pub struct DHCPMessage { pub header: DHCPHeader, diff --git a/rust/src/dns/dns.rs b/rust/src/dns/dns.rs index ead5a6bcba..2a7825459e 100644 --- a/rust/src/dns/dns.rs +++ b/rust/src/dns/dns.rs @@ -26,7 +26,7 @@ use crate::core; use crate::dns::parser; use nom::IResult; -use nom::number::complete::be_u16; +use nom::number::streaming::be_u16; /// DNS record types. pub const DNS_RECORD_TYPE_A : u16 = 1; diff --git a/rust/src/dns/parser.rs b/rust/src/dns/parser.rs index fd4d3cba68..458f161083 100644 --- a/rust/src/dns/parser.rs +++ b/rust/src/dns/parser.rs @@ -20,7 +20,7 @@ use nom::IResult; use nom::error::ErrorKind; use nom::multi::length_data; -use nom::number::complete::{be_u8, be_u16, be_u32}; +use nom::number::streaming::{be_u8, be_u16, be_u32}; use nom; use crate::dns::dns::*; diff --git a/rust/src/kerberos.rs b/rust/src/kerberos.rs index ff1370e1f2..c5730bd3bb 100644 --- a/rust/src/kerberos.rs +++ b/rust/src/kerberos.rs @@ -20,7 +20,7 @@ use kerberos_parser::krb5::{ApReq,Realm,PrincipalName}; use nom; use nom::IResult; use nom::error::{ErrorKind, ParseError}; -use nom::number::complete::le_u16; +use nom::number::streaming::le_u16; use der_parser; use der_parser::error::BerError; use der_parser::der::parse_der_oid; diff --git a/rust/src/krb/krb5.rs b/rust/src/krb/krb5.rs index 91f0aa57ec..259aa1de15 100644 --- a/rust/src/krb/krb5.rs +++ b/rust/src/krb/krb5.rs @@ -21,7 +21,7 @@ use std; use std::ffi::{CStr,CString}; use nom; use nom::IResult; -use nom::number::complete::be_u32; +use nom::number::streaming::be_u32; use der_parser::der::der_read_element_header; use kerberos_parser::krb5_parser; use kerberos_parser::krb5::{EncryptionType,ErrorCode,MessageType,PrincipalName,Realm}; diff --git a/rust/src/nfs/nfs2.rs b/rust/src/nfs/nfs2.rs index c13155862f..7b25bb4239 100644 --- a/rust/src/nfs/nfs2.rs +++ b/rust/src/nfs/nfs2.rs @@ -25,7 +25,7 @@ use crate::nfs::rpc_records::*; use crate::nfs::nfs2_records::*; use nom::IResult; -use nom::number::complete::be_u32; +use nom::number::streaming::be_u32; impl NFSState { /// complete request record diff --git a/rust/src/nfs/nfs2_records.rs b/rust/src/nfs/nfs2_records.rs index 19f6a6c0b9..facaadda02 100644 --- a/rust/src/nfs/nfs2_records.rs +++ b/rust/src/nfs/nfs2_records.rs @@ -17,7 +17,7 @@ //! Nom parsers for NFSv2 records use nom::combinator::rest; -use nom::number::complete::be_u32; +use nom::number::streaming::be_u32; use crate::nfs::nfs_records::*; #[derive(Debug,PartialEq)] diff --git a/rust/src/nfs/nfs3.rs b/rust/src/nfs/nfs3.rs index 3abb675715..0398e10cf6 100644 --- a/rust/src/nfs/nfs3.rs +++ b/rust/src/nfs/nfs3.rs @@ -26,7 +26,7 @@ use crate::nfs::rpc_records::*; use crate::nfs::nfs3_records::*; use nom::IResult; -use nom::number::complete::be_u32; +use nom::number::streaming::be_u32; impl NFSState { /// complete NFS3 request record diff --git a/rust/src/nfs/nfs3_records.rs b/rust/src/nfs/nfs3_records.rs index 06ad38057e..2130063ba1 100644 --- a/rust/src/nfs/nfs3_records.rs +++ b/rust/src/nfs/nfs3_records.rs @@ -19,7 +19,7 @@ use nom::IResult; use nom::combinator::rest; -use nom::number::complete::{be_u32, be_u64}; +use nom::number::streaming::{be_u32, be_u64}; use crate::nfs::nfs_records::*; #[derive(Debug,PartialEq)] diff --git a/rust/src/nfs/nfs4.rs b/rust/src/nfs/nfs4.rs index cfc9b4697e..f1e527c078 100644 --- a/rust/src/nfs/nfs4.rs +++ b/rust/src/nfs/nfs4.rs @@ -18,7 +18,7 @@ // written by Victor Julien use nom; -use nom::number::complete::be_u32; +use nom::number::streaming::be_u32; use crate::core::*; use crate::log::*; diff --git a/rust/src/nfs/nfs4_records.rs b/rust/src/nfs/nfs4_records.rs index 9d08919a95..e4f391f1e8 100644 --- a/rust/src/nfs/nfs4_records.rs +++ b/rust/src/nfs/nfs4_records.rs @@ -16,7 +16,7 @@ */ //! Nom parsers for NFSv4 records -use nom::number::complete::{be_u32, be_u64}; +use nom::number::streaming::{be_u32, be_u64}; use crate::nfs::types::*; diff --git a/rust/src/nfs/rpc_records.rs b/rust/src/nfs/rpc_records.rs index d9c779adb8..a218eb717c 100644 --- a/rust/src/nfs/rpc_records.rs +++ b/rust/src/nfs/rpc_records.rs @@ -19,7 +19,7 @@ use nom::IResult; use nom::combinator::rest; -use nom::number::complete::be_u32; +use nom::number::streaming::be_u32; #[derive(Debug,PartialEq)] pub enum RpcRequestCreds<'a> { diff --git a/rust/src/rdp/parser.rs b/rust/src/rdp/parser.rs index f38783b317..3b733818d6 100644 --- a/rust/src/rdp/parser.rs +++ b/rust/src/rdp/parser.rs @@ -27,7 +27,7 @@ //! * x.691-spec: use nom::IResult; -use nom::bytes::complete::take; +use nom::bytes::streaming::take; use nom::combinator::{opt, map_opt, map_res}; use nom::number::streaming::{be_u16, be_u8, le_u16, le_u32, le_u8}; use crate::rdp::error::RdpError; diff --git a/rust/src/sip/parser.rs b/rust/src/sip/parser.rs index 4edee68a89..be8e1cec85 100644 --- a/rust/src/sip/parser.rs +++ b/rust/src/sip/parser.rs @@ -20,7 +20,7 @@ use nom::*; use nom::IResult; use nom::character::{is_alphabetic, is_alphanumeric, is_space}; -use nom::character::complete::crlf; +use nom::character::streaming::crlf; use std; use std::collections::HashMap; diff --git a/rust/src/smb/dcerpc_records.rs b/rust/src/smb/dcerpc_records.rs index 24992d635e..8d0b07faf9 100644 --- a/rust/src/smb/dcerpc_records.rs +++ b/rust/src/smb/dcerpc_records.rs @@ -20,7 +20,7 @@ use nom; use nom::IResult; use nom::combinator::rest; use nom::number::Endianness; -use nom::number::complete::{be_u16, le_u8, le_u16, le_u32}; +use nom::number::streaming::{be_u16, le_u8, le_u16, le_u32}; #[derive(Debug,PartialEq)] pub struct DceRpcResponseRecord<'a> { diff --git a/rust/src/smb/ntlmssp_records.rs b/rust/src/smb/ntlmssp_records.rs index 52ca9ee9cb..e0fca25c8c 100644 --- a/rust/src/smb/ntlmssp_records.rs +++ b/rust/src/smb/ntlmssp_records.rs @@ -17,7 +17,7 @@ use nom::IResult; use nom::combinator::rest; -use nom::number::complete::{le_u8, le_u16, le_u32}; +use nom::number::streaming::{le_u8, le_u16, le_u32}; #[derive(Debug,PartialEq)] pub struct NTLMSSPVersion { diff --git a/rust/src/smb/smb1_records.rs b/rust/src/smb/smb1_records.rs index 148631fbf8..7a0cc1e22b 100644 --- a/rust/src/smb/smb1_records.rs +++ b/rust/src/smb/smb1_records.rs @@ -19,7 +19,7 @@ use crate::smb::error::SmbError; use crate::log::*; use nom::IResult; use nom::combinator::rest; -use nom::number::complete::{le_u8, le_u16, le_u32, le_u64}; +use nom::number::streaming::{le_u8, le_u16, le_u32, le_u64}; use crate::smb::smb::*; use crate::smb::smb_records::*; diff --git a/rust/src/smb/smb2_records.rs b/rust/src/smb/smb2_records.rs index 69fede11bc..fa6d62eb89 100644 --- a/rust/src/smb/smb2_records.rs +++ b/rust/src/smb/smb2_records.rs @@ -18,7 +18,7 @@ use nom; use nom::IResult; use nom::combinator::rest; -use nom::number::complete::{le_u8, le_u16, le_u32, le_u64}; +use nom::number::streaming::{le_u8, le_u16, le_u32, le_u64}; use crate::smb::smb::*; #[derive(Debug,PartialEq)] diff --git a/rust/src/smb/smb3.rs b/rust/src/smb/smb3.rs index 7043ef3ac2..ffbaf49cc6 100644 --- a/rust/src/smb/smb3.rs +++ b/rust/src/smb/smb3.rs @@ -15,7 +15,7 @@ * 02110-1301, USA. */ -use nom::number::complete::{le_u16, le_u32, le_u64}; +use nom::number::streaming::{le_u16, le_u32, le_u64}; #[derive(Debug,PartialEq)] pub struct Smb3TransformRecord<'a> {