summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaap Keuter <jaap.keuter@xs4all.nl>2017-01-16 22:14:26 +0100
committerAnders Broman <a.broman58@gmail.com>2017-01-22 10:40:34 +0000
commit4ff9bddc4608cd6de1c729d1fbc39c9b49740c13 (patch)
tree040432423369c83a404d6daad21d07b3f3b83c72
parentb83bbd92b5763a29ef352fa2162496c6ba3640b0 (diff)
downloadwireshark-4ff9bddc4608cd6de1c729d1fbc39c9b49740c13.tar.gz
wmem: fix rb-tree data printer feed
When using a data printer for the red/black tree it is fed with the nodes of the tree. But nodes can be either subtree or data nodes. Don't feed the subtree nodes to the data printer. The data printer can't recognize it as such, can't handle it, or worse, could break stuff. Change-Id: Ibbc1311d901c0d0c52e710f951dd53620f2c3d0f Reviewed-on: https://code.wireshark.org/review/19652 Reviewed-by: Evan Huus <eapache@gmail.com> Reviewed-by: Michael Mann <mmann78@netscape.net> Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r--epan/wmem/wmem_tree.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/epan/wmem/wmem_tree.c b/epan/wmem/wmem_tree.c
index c4641279b1..e643e110a2 100644
--- a/epan/wmem/wmem_tree.c
+++ b/epan/wmem/wmem_tree.c
@@ -725,12 +725,12 @@ wmem_tree_print_nodes(const char *prefix, wmem_tree_node_t *node, guint32 level,
(void *)node->left, (void *)node->right,
node->color?"Black":"Red", node->key,
node->is_subtree?"tree":"data", node->data);
- if(key_printer) {
+ if (key_printer) {
wmem_print_indent(level);
key_printer(node->key);
ws_debug_printf("\n");
}
- if(data_printer) {
+ if (data_printer && !node->is_subtree) {
wmem_print_indent(level);
data_printer(node->data);
ws_debug_printf("\n");