From 0433c47466080804d00afb7e091e563264d06888 Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Tue, 15 Dec 2015 00:04:33 +0100 Subject: [PATCH] Fix memory leak when deleting list items --- src/list.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/list.c b/src/list.c index 660b962e..784e6715 100644 --- a/src/list.c +++ b/src/list.c @@ -107,6 +107,13 @@ _getdns_list_remove_name(getdns_list *list, const char *name) i = &list->items[index]; if (!*next) { + switch (i->dtype) { + case t_dict : getdns_dict_destroy(i->data.dict); break; + case t_list : getdns_list_destroy(i->data.list); break; + case t_bindata: _getdns_bindata_destroy( + &list->mf, i->data.bindata); + default : break; + } if (index < list->numinuse - 1) (void) memmove( i, &i[1], (list->numinuse - index) * sizeof(getdns_item));