diff options
author | Peter Wu <peter@lekensteyn.nl> | 2014-11-23 23:58:24 +0100 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2014-11-23 23:49:28 +0000 |
commit | ec650d45a930ff5e67f5f37aa54d5bfb010dda1d (patch) | |
tree | daf691bf5d362334b7a92f17b02a39162017c30e /epan/dissectors/file-elf.c | |
parent | 4d55e1f455bc2c087b74d237a1da7914c2cfb915 (diff) | |
download | wireshark-ec650d45a930ff5e67f5f37aa54d5bfb010dda1d.tar.gz |
elf: separate ett for program and sections entries
This makes it easier to focus on a single section entry, collapsing all
other entries.
Change-Id: I3de72065eb279e9449496a7224508e5be85c3757
Reviewed-on: https://code.wireshark.org/review/5456
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/file-elf.c')
-rw-r--r-- | epan/dissectors/file-elf.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/epan/dissectors/file-elf.c b/epan/dissectors/file-elf.c index f6fa9772be..6f5288709f 100644 --- a/epan/dissectors/file-elf.c +++ b/epan/dissectors/file-elf.c @@ -185,7 +185,9 @@ static expert_field ei_invalid_entry_size = EI_INIT; static gint ett_elf = -1; static gint ett_elf_header = -1; static gint ett_elf_program_header = -1; +static gint ett_elf_program_header_entry = -1; static gint ett_elf_section_header = -1; +static gint ett_elf_section_header_entry = -1; static gint ett_elf_segment = -1; static gint ett_elf_cie = -1; static gint ett_elf_fde = -1; @@ -1294,15 +1296,18 @@ dissect_elf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) p_type = (machine_encoding == ENC_BIG_ENDIAN) ? tvb_get_ntohl(tvb, offset) : tvb_get_letohl(tvb, offset); if (p_type >= 0x60000000 && p_type <= 0x6FFFFFFF) { - ph_entry_tree = proto_tree_add_subtree_format(program_header_tree, tvb, offset, phentsize, ett_elf_program_header, NULL, + ph_entry_tree = proto_tree_add_subtree_format(program_header_tree, + tvb, offset, phentsize, ett_elf_program_header_entry, NULL, "Entry #%d: Operating System Specific (0x%08x)", phnum - i_16 - 1, p_type); proto_tree_add_item(ph_entry_tree, hf_elf_p_type_operating_system_specific, tvb, offset, 4, machine_encoding); } else if (p_type >= 0x70000000 && p_type <= 0x7FFFFFFF) { - ph_entry_tree = proto_tree_add_subtree_format(program_header_tree, tvb, offset, phentsize, ett_elf_program_header, NULL, + ph_entry_tree = proto_tree_add_subtree_format(program_header_tree, + tvb, offset, phentsize, ett_elf_program_header_entry, NULL, "Entry #%d: Processor Specific (0x%08x)", phnum - i_16 - 1, p_type); proto_tree_add_item(ph_entry_tree, hf_elf_p_type_processor_specific, tvb, offset, 4, machine_encoding); } else { - ph_entry_tree = proto_tree_add_subtree_format(program_header_tree, tvb, offset, phentsize, ett_elf_program_header, NULL, + ph_entry_tree = proto_tree_add_subtree_format(program_header_tree, + tvb, offset, phentsize, ett_elf_program_header_entry, NULL, "Entry #%d: %s", phnum - i_16 - 1, val_to_str_const(p_type, p_type_vals, "Unknown")); proto_tree_add_item(ph_entry_tree, hf_elf_p_type, tvb, offset, 4, machine_encoding); @@ -1453,7 +1458,8 @@ dissect_elf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) i_16 = shnum; while (i_16-- > 0) { sh_entry_tree = proto_tree_add_subtree_format(section_header_tree, tvb, offset, shentsize, - ett_elf_section_header, &sh_entry_item, "Entry #%d: ", shnum - i_16 - 1); + ett_elf_section_header_entry, &sh_entry_item, + "Entry #%d: ", shnum - i_16 - 1); proto_tree_add_item(sh_entry_tree, hf_elf_sh_name, tvb, offset, 4, machine_encoding); sh_name = (machine_encoding == ENC_BIG_ENDIAN) ? @@ -2372,7 +2378,9 @@ proto_register_elf(void) &ett_elf, &ett_elf_header, &ett_elf_program_header, + &ett_elf_program_header_entry, &ett_elf_section_header, + &ett_elf_section_header_entry, &ett_elf_segment, &ett_elf_cie, &ett_elf_fde, |