From 8fe2c7a40a79c7d1b68bd00955729e94a21a0ea5 Mon Sep 17 00:00:00 2001 From: graham.gower Date: Fri, 30 Oct 2009 02:37:09 -0400 Subject: Fix some memory leaks. git-svn-id: http://opkg.googlecode.com/svn/trunk@229 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358 --- (limited to 'libopkg/void_list.c') diff --git a/libopkg/void_list.c b/libopkg/void_list.c index 676e3b1..1517228 100644 --- a/libopkg/void_list.c +++ b/libopkg/void_list.c @@ -30,7 +30,7 @@ int void_list_elt_init(void_list_elt_t *elt, void *data) void_list_elt_t * void_list_elt_new (void *data) { void_list_elt_t *elt; - /* freed in void_list_deinit */ + /* freed in void_list_elt_deinit */ elt = calloc(1, sizeof(void_list_elt_t)); if (elt == NULL) { fprintf(stderr, "%s: out of memory\n", __FUNCTION__); @@ -44,6 +44,7 @@ void void_list_elt_deinit(void_list_elt_t *elt) { list_del_init(&elt->node); void_list_elt_init(elt, NULL); + free(elt); } int void_list_init(void_list_t *list) @@ -59,8 +60,6 @@ void void_list_deinit(void_list_t *list) while (!void_list_empty(list)) { elt = void_list_pop(list); void_list_elt_deinit(elt); - /* malloced in void_list_append */ - free(elt); } INIT_LIST_HEAD(&list->head); } @@ -116,7 +115,6 @@ void *void_list_remove(void_list_t *list, void_list_elt_t **iter) *iter = list_entry(pos->node.prev, void_list_elt_t, node); void_list_elt_deinit(pos); - free(pos); return old_data; } -- cgit v0.9.1