From 53fa2af07c12642b276c19da83d7c6aa070975ca Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Wed, 21 Mar 2018 15:52:44 +0100 Subject: [PATCH] nfs4: fix attr parsing corner case --- rust/src/nfs/nfs4_records.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rust/src/nfs/nfs4_records.rs b/rust/src/nfs/nfs4_records.rs index 0f77215e72..2db54cb619 100644 --- a/rust/src/nfs/nfs4_records.rs +++ b/rust/src/nfs/nfs4_records.rs @@ -63,7 +63,8 @@ named!(nfs4_parse_attrs, do_parse!( attr_cnt: be_u32 >> attr_mask1: be_u32 - >> attr_mask2: cond!(attr_cnt == 2, be_u32) + >> attr_mask2: cond!(attr_cnt >= 2, be_u32) + >> cond!(attr_cnt == 3, be_u32) >> nfs4_parse_attr_fields >> ( Nfs4Attr { attr_mask: ((attr_mask1 as u64) << 32) | attr_mask2.unwrap_or(0) as u64, @@ -74,7 +75,8 @@ named!(nfs4_parse_attrbits, do_parse!( attr_cnt: be_u32 >> attr_mask1: be_u32 - >> attr_mask2: cond!(attr_cnt == 2, be_u32) + >> attr_mask2: cond!(attr_cnt >= 2, be_u32) + >> cond!(attr_cnt == 3, be_u32) >> ( Nfs4Attr { attr_mask: ((attr_mask1 as u64) << 32) | attr_mask2.unwrap_or(0) as u64, } )