Always create subtree in proto_item_add_subtree().

It might fix bug #10345

Ping-Bug: 10345
Change-Id: I695a2955a9bb0248ff3967bdaef004389500bbc9
Reviewed-on: https://code.wireshark.org/review/3402
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Tested-by: Anders Broman <a.broman58@gmail.com>
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Evan Huus <eapache@gmail.com>
This commit is contained in:
Jakub Zawadzki 2014-08-04 07:39:49 +02:00 committed by Evan Huus
parent f25f1ea562
commit 76e4698b6d
1 changed files with 6 additions and 19 deletions

View File

@ -1138,32 +1138,19 @@ proto_tree_add_subtree(proto_tree *tree, tvbuff_t *tvb, gint start, gint length,
proto_tree *
proto_tree_add_subtree_format(proto_tree *tree, tvbuff_t *tvb, gint start, gint length, gint idx, proto_item **tree_item, const char *format, ...)
{
proto_tree *pt;
proto_item *pi;
va_list ap;
header_field_info *hfinfo;
/* Make sure *tree_item is initialized in case TRY_TO_FAKE_THIS_ITEM bails.
* (We set it to 'tree' to match the behavior of TRY_TO_FAKE_THIS_ITEM
* when 'tree' is set but the tree is not not visible.)
*/
if (tree_item != NULL)
*tree_item = (proto_item *)tree;
TRY_TO_FAKE_THIS_ITEM(tree, hf_text_only, hfinfo, tvb);
pi = proto_tree_add_text_node(tree, tvb, start, length);
TRY_TO_FAKE_THIS_REPR(pi);
proto_tree *pt;
proto_item *pi;
va_list ap;
va_start(ap, format);
proto_tree_set_representation(pi, format, ap);
pi = proto_tree_add_text_valist(tree, tvb, start, length, format, ap);
va_end(ap);
pt = proto_item_add_subtree(pi, idx);
if (tree_item != NULL)
*tree_item = pi;
pt = proto_item_add_subtree(pi, idx);
return pt;
}