diff options
Diffstat (limited to 'example/ndpiReader.c')
-rw-r--r-- | example/ndpiReader.c | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/example/ndpiReader.c b/example/ndpiReader.c index 218f251c3..37423bc62 100644 --- a/example/ndpiReader.c +++ b/example/ndpiReader.c @@ -945,20 +945,13 @@ int updateIpTree(const char *key, addr_node **vrootp, const char *proto) { /* *********************************************** */ void freeIpTree(addr_node *root) { - while (root != NULL) { - addr_node *left = root->left; + if (root == NULL) + return; - if(left == NULL) { - addr_node *right = root->right; - root->right = NULL; - root = right; - } else { - /* Rotate the left child up.*/ - root->left = left->right; - left->right = root; - root = left; - } - } + freeIpTree(root->left); + freeIpTree(root->right); + free(root); + root = NULL; } /* *********************************************** */ @@ -1077,7 +1070,6 @@ static void deletePortsStats(struct port_stats *stats) { HASH_ITER(hh, stats, current_port, tmp) { HASH_DEL(stats, current_port); freeIpTree(current_port->addr_tree); - free(current_port->addr_tree); free(current_port); } } |