]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
smb: minor optimizations
authorVictor Julien <victor@inliniac.net>
Tue, 27 Mar 2018 08:31:28 +0000 (10:31 +0200)
committerVictor Julien <victor@inliniac.net>
Wed, 28 Mar 2018 06:47:04 +0000 (08:47 +0200)
rust/src/smb/smb.rs
rust/src/smb/smb2_records.rs

index 29db1d3fc45d2d4803b57e12d4e472fc903e08cf..9f55bf358a8c0d79c83191858ed29dd4f97bf1cc 100644 (file)
@@ -1109,7 +1109,7 @@ impl SMBState {
 
     pub fn set_file_left(&mut self, direction: u8, rec_size: u32, data_size: u32, fuid: Vec<u8>)
     {
-        let left = if data_size >= rec_size { 0 } else { rec_size - data_size };
+        let left = rec_size.saturating_sub(data_size);
         if direction == STREAM_TOSERVER {
             self.file_ts_left = left;
             self.file_ts_guid = fuid;
@@ -1121,7 +1121,7 @@ impl SMBState {
 
     pub fn set_skip(&mut self, direction: u8, rec_size: u32, data_size: u32)
     {
-        let skip = if data_size >= rec_size { 0 } else { rec_size - data_size };
+        let skip = rec_size.saturating_sub(data_size);
         if direction == STREAM_TOSERVER {
             self.skip_ts = skip;
         } else {
index d068dbb5e146939079024508f732af06b2959f65..7b34278cc21a8c856ae5600a4ac883079a4912ab 100644 (file)
@@ -409,12 +409,9 @@ fn parse_smb2_data<'a>(i: &'a[u8], len: u32)
     -> IResult<&'a[u8], &'a[u8]>
 {
     if len as usize > i.len() {
-        IResult::Done(&[], i)
+        rest(i)
     } else {
-        do_parse!(i,
-                data: take!(len)
-            >> (data)
-        )
+        take!(i, len)
     }
 }