From ce6952dbf54faecddd3e8f3f818520716abf24ed Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 25 Apr 2019 13:54:59 +0200 Subject: packet-smb2: add support for SMB2_FILE_NORMALIZED_NAME_INFO Change-Id: I58d9db510181c5872be14e9feb4f35c2e6e41a39 Reviewed-on: https://code.wireshark.org/review/35595 Petri-Dish: Alexis La Goutte Tested-by: Petri Dish Buildbot Reviewed-by: Alexis La Goutte --- epan/dissectors/packet-smb2.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/epan/dissectors/packet-smb2.c b/epan/dissectors/packet-smb2.c index ef70637140..2d468ed461 100644 --- a/epan/dissectors/packet-smb2.c +++ b/epan/dissectors/packet-smb2.c @@ -165,6 +165,7 @@ static int hf_smb2_file_pipe_info = -1; static int hf_smb2_file_compression_info = -1; static int hf_smb2_file_network_open_info = -1; static int hf_smb2_file_attribute_tag_info = -1; +static int hf_smb2_file_normalized_name_info = -1; static int hf_smb2_fs_info_01 = -1; static int hf_smb2_fs_info_03 = -1; static int hf_smb2_fs_info_04 = -1; @@ -575,6 +576,7 @@ static gint ett_smb2_file_attribute_tag_info = -1; static gint ett_smb2_file_rename_info = -1; static gint ett_smb2_file_disposition_info = -1; static gint ett_smb2_file_full_ea_info = -1; +static gint ett_smb2_file_normalized_name_info = -1; static gint ett_smb2_fs_info_01 = -1; static gint ett_smb2_fs_info_03 = -1; static gint ett_smb2_fs_info_04 = -1; @@ -752,6 +754,7 @@ static const value_string smb2_share_type_vals[] = { #define SMB2_FILE_COMPRESSION_INFO 0x1c #define SMB2_FILE_NETWORK_OPEN_INFO 0x22 #define SMB2_FILE_ATTRIBUTE_TAG_INFO 0x23 +#define SMB2_FILE_NORMALIZED_NAME_INFO 0x30 static const value_string smb2_file_info_levels[] = { {SMB2_FILE_BASIC_INFO, "SMB2_FILE_BASIC_INFO" }, @@ -774,6 +777,7 @@ static const value_string smb2_file_info_levels[] = { {SMB2_FILE_COMPRESSION_INFO, "SMB2_FILE_COMPRESSION_INFO" }, {SMB2_FILE_NETWORK_OPEN_INFO, "SMB2_FILE_NETWORK_OPEN_INFO" }, {SMB2_FILE_ATTRIBUTE_TAG_INFO, "SMB2_FILE_ATTRIBUTE_TAG_INFO" }, + {SMB2_FILE_NORMALIZED_NAME_INFO,"SMB2_FILE_NORMALIZED_NAME_INFO" }, { 0, NULL } }; static value_string_ext smb2_file_info_levels_ext = VALUE_STRING_EXT_INIT(smb2_file_info_levels); @@ -2436,6 +2440,24 @@ dissect_smb2_file_alternate_name_info(tvbuff_t *tvb, packet_info *pinfo _U_, pro return offset; } +static int +dissect_smb2_file_normalized_name_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *parent_tree, int offset, smb2_info_t *si _U_) +{ + proto_item *item = NULL; + proto_tree *tree = NULL; + guint16 bc; + gboolean trunc; + + if (parent_tree) { + item = proto_tree_add_item(parent_tree, hf_smb2_file_normalized_name_info, tvb, offset, -1, ENC_NA); + tree = proto_item_add_subtree(item, ett_smb2_file_normalized_name_info); + } + + bc = tvb_captured_length_remaining(tvb, offset); + offset = dissect_qfi_SMB_FILE_NAME_INFO(tvb, pinfo, tree, offset, &bc, &trunc, /* XXX assumption hack */ TRUE); + + return offset; +} static int dissect_smb2_file_basic_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *parent_tree, int offset, smb2_info_t *si _U_) @@ -5350,6 +5372,9 @@ dissect_smb2_infolevel(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, case SMB2_FILE_ATTRIBUTE_TAG_INFO: offset = dissect_smb2_file_attribute_tag_info(tvb, pinfo, tree, offset, si); break; + case SMB2_FILE_NORMALIZED_NAME_INFO: + offset = dissect_smb2_file_normalized_name_info(tvb, pinfo, tree, offset, si); + break; default: /* we don't handle this infolevel yet */ proto_tree_add_item(tree, hf_smb2_unknown, tvb, offset, tvb_captured_length_remaining(tvb, offset), ENC_NA); @@ -10843,6 +10868,11 @@ proto_register_smb2(void) NULL, 0, NULL, HFILL } }, + { &hf_smb2_file_normalized_name_info, + { "SMB2_FILE_NORMALIZED_NAME_INFO", "smb2.file_normalized_name_info", FT_NONE, BASE_NONE, + NULL, 0, NULL, HFILL } + }, + { &hf_smb2_file_stream_info, { "SMB2_FILE_STREAM_INFO", "smb2.file_stream_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL } @@ -12711,6 +12741,7 @@ proto_register_smb2(void) &ett_smb2_file_compression_info, &ett_smb2_file_network_open_info, &ett_smb2_file_attribute_tag_info, + &ett_smb2_file_normalized_name_info, &ett_smb2_fs_info_01, &ett_smb2_fs_info_03, &ett_smb2_fs_info_04, -- cgit v1.2.3