SYSTEM_SECURITY_ACCESS and MAXIMUM_ALLOWED_ACCESS are not generic bits.
So move them into new "other" subtree.
---
 epan/dissectors/packet-windows-common.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/epan/dissectors/packet-windows-common.c 
b/epan/dissectors/packet-windows-common.c
index abe533361cf9..c5ce1a7fbc40 100644
--- a/epan/dissectors/packet-windows-common.c
+++ b/epan/dissectors/packet-windows-common.c
@@ -2195,6 +2195,7 @@ dissect_nt_conditional_ace(tvbuff_t *tvb, packet_info 
*pinfo, int offset, uint16
 */
 static int ett_nt_access_mask;
 static int ett_nt_access_mask_generic;
+static int ett_nt_access_mask_other;
 static int ett_nt_access_mask_standard;
 static int ett_nt_access_mask_specific;
 
@@ -2277,7 +2278,7 @@ dissect_nt_access_mask(tvbuff_t *tvb, int offset, 
packet_info *pinfo,
                       struct access_mask_info *ami, uint32_t *perms)
 {
        proto_item *item;
-       proto_tree *subtree, *generic_tree, *standard_tree, *specific_tree;
+       proto_tree *subtree, *generic_tree, *other_tree, *standard_tree, 
*specific_tree;
        uint32_t access;
 
        static int * const generic_access_flags[] = {
@@ -2285,6 +2286,10 @@ dissect_nt_access_mask(tvbuff_t *tvb, int offset, 
packet_info *pinfo,
                &hf_access_generic_write,
                &hf_access_generic_execute,
                &hf_access_generic_all,
+               NULL
+       };
+
+       static int * const other_access_flags[] = {
                &hf_access_maximum_allowed,
                &hf_access_system_security,
                NULL
@@ -2355,6 +2360,14 @@ dissect_nt_access_mask(tvbuff_t *tvb, int offset, 
packet_info *pinfo,
 
        proto_tree_add_bitmask_list_value(generic_tree, tvb, offset - 4, 4, 
generic_access_flags, access);
 
+       /* Other access rights */
+
+       other_tree = proto_tree_add_subtree_format(subtree, tvb, offset - 4, 4,
+                                  ett_nt_access_mask_other, NULL, "Other 
rights: 0x%08x",
+                                  access & 0x0F000000);
+
+       proto_tree_add_bitmask_list_value(other_tree, tvb, offset - 4, 4, 
other_access_flags, access);
+
        /* Standard access rights */
 
        standard_tree = proto_tree_add_subtree_format(subtree, tvb, offset - 4, 
4,
@@ -3677,6 +3690,7 @@ proto_do_register_windows_common(int proto_smb)
                &ett_nt_ace_object_flags,
                &ett_nt_access_mask,
                &ett_nt_access_mask_generic,
+               &ett_nt_access_mask_other,
                &ett_nt_access_mask_standard,
                &ett_nt_access_mask_specific,
                &ett_nt_security_information,
-- 
2.20.1

_______________________________________________
Wireshark-dev mailing list -- wireshark-dev@wireshark.org
To unsubscribe send an email to wireshark-dev-le...@wireshark.org

Reply via email to