From 4ff9bddc4608cd6de1c729d1fbc39c9b49740c13 Mon Sep 17 00:00:00 2001 From: Jaap Keuter Date: Mon, 16 Jan 2017 22:14:26 +0100 Subject: [PATCH] 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 Reviewed-by: Michael Mann Petri-Dish: Michael Mann Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman --- epan/wmem/wmem_tree.c | 4 ++-- 1 file 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");