]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
nfs3: fill bytes corner case
authorVictor Julien <victor@inliniac.net>
Tue, 13 Jun 2017 06:39:16 +0000 (08:39 +0200)
committerVictor Julien <victor@inliniac.net>
Fri, 16 Jun 2017 11:11:36 +0000 (13:11 +0200)
rust/src/nfs/nfs3.rs

index b0152f22b8fc8c508935fb1544bf84e6430b6952..7dc18e29073cf5e22c4083cc67147b176471061a 100644 (file)
@@ -1071,6 +1071,7 @@ impl NFS3State {
         if pad != 0 {
             fill_bytes = 4 - pad;
         }
+        SCLogDebug!("XID {} fill_bytes {} reply.count {} reply.data_len {} reply.data.len() {}", r.hdr.xid, fill_bytes, reply.count, reply.data_len, reply.data.len());
 
         if nfs_version == 2 {
             let size = match parse_nfs2_attribs(reply.attr_blob) {
@@ -1132,7 +1133,7 @@ impl NFS3State {
         //}
         if !self.is_udp {
             self.tc_chunk_xid = r.hdr.xid;
-            self.tc_chunk_left = reply.count as u32 - reply.data.len() as u32;
+            self.tc_chunk_left = (reply.count as u32 + fill_bytes) - reply.data.len() as u32;
         }
 
         SCLogDebug!("REPLY {} to procedure {} blob size {} / {}: chunk_left {}",