diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2016-01-09 09:35:40 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2016-01-09 09:35:40 +0200 |
commit | 8434d5e107c0f43847db56569106e2aafb1a67f4 (patch) | |
tree | 9236ae5560651770580c81d4497d265bc57f0b89 /src | |
parent | 384b8c088c290f06f70835402f903627c67de6f3 (diff) | |
download | grecs-8434d5e107c0f43847db56569106e2aafb1a67f4.tar.gz grecs-8434d5e107c0f43847db56569106e2aafb1a67f4.tar.bz2 |
Fix memory leak
* src/list.c (grecs_list_remove_entry): Free the entry, but not its data.
All callers updated.
* src/txtacc.c (grecs_txtacc_free_string): Free the txtacc entry after
removal.
Diffstat (limited to 'src')
-rw-r--r-- | src/list.c | 4 | ||||
-rw-r--r-- | src/txtacc.c | 2 |
2 files changed, 2 insertions, 4 deletions
@@ -84,3 +84,3 @@ grecs_list_remove_entry(struct grecs_list *lp, struct grecs_list_entry *ent) lp->tail = ent->prev; - ent->next = ent->prev = NULL; + grecs_free(ent); lp->count--; @@ -129,3 +129,2 @@ grecs_list_pop(struct grecs_list *lp) grecs_list_remove_entry(lp, ep); - grecs_free(ep); } else @@ -146,3 +145,2 @@ grecs_list_remove_tail(struct grecs_list *lp) grecs_list_remove_entry(lp, ep); - grecs_free(ep); return data; diff --git a/src/txtacc.c b/src/txtacc.c index 5d42657..810601c 100644 --- a/src/txtacc.c +++ b/src/txtacc.c @@ -194,3 +194,3 @@ grecs_txtacc_free_string(struct grecs_txtacc *acc, char *str) grecs_list_remove_entry(acc->mem, ep); - grecs_free(tp->buf); + grecs_txtacc_entry_free(tp); return; |