From 9d3c08e633b70fbc236cc8e197732ba32f9fc5cb Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Mon, 10 Nov 2014 20:43:43 +0100 Subject: memory leak MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/mds-kbdc/tree.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/mds-kbdc/tree.c') diff --git a/src/mds-kbdc/tree.c b/src/mds-kbdc/tree.c index 600bf2a..99fa223 100644 --- a/src/mds-kbdc/tree.c +++ b/src/mds-kbdc/tree.c @@ -63,6 +63,9 @@ static void mds_kbdc_tree_destroy_(mds_kbdc_tree_t* restrict this, int recursive #define xfree(t, v) (free(V(t, v)), V(t, v) = NULL) #define xdestroy(t, v) (recursive ? (mds_kbdc_tree_destroy_(V(t, v), 1), xfree(t, v)) : (V(t, v) = NULL)) + mds_kbdc_tree_t* prev = NULL; + mds_kbdc_tree_t* first = this; + again: if (this == NULL) return; @@ -149,7 +152,10 @@ static void mds_kbdc_tree_destroy_(mds_kbdc_tree_t* restrict this, int recursive break; } + prev = this; this = this->next; + if (prev != first) + free(prev); goto again; #undef xdestroy -- cgit v1.2.3-70-g09d2