From f27236b0c04c3615d4bda6155fab4fcd130eae03 Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Mon, 27 May 2013 11:17:05 -0700 Subject: [PATCH] ITS#7588 plug memleak --- servers/slapd/overlays/sssvlv.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/servers/slapd/overlays/sssvlv.c b/servers/slapd/overlays/sssvlv.c index 49b4cf01b0..c6779dd3a7 100644 --- a/servers/slapd/overlays/sssvlv.c +++ b/servers/slapd/overlays/sssvlv.c @@ -397,7 +397,19 @@ static void free_sort_op( Connection *conn, sort_op *so ) { int sess_id; if ( so->so_tree ) { - tavl_free( so->so_tree, ch_free ); + if ( so->so_paged > SLAP_CONTROL_IGNORED ) { + Avlnode *cur_node, *next_node; + cur_node = so->so_tree; + while ( cur_node ) { + next_node = tavl_next( cur_node, TAVL_DIR_RIGHT ); + ch_free( cur_node->avl_data ); + ber_memfree( cur_node ); + + cur_node = next_node; + } + } else { + tavl_free( so->so_tree, ch_free ); + } so->so_tree = NULL; } -- 2.39.5