Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Factory:Rebuild
antlr3c
fix-LIST-memory-leak.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File fix-LIST-memory-leak.patch of Package antlr3c
From 26aaa0f97e45025c48139bd39adc8808f9b4e697 Mon Sep 17 00:00:00 2001 From: Jiri Slaby <jirislaby@gmail.com> Date: Thu, 17 Feb 2011 21:26:57 +0100 Subject: [PATCH] collections: fix a LIST memory leak When using antlr3 lists, Valgrind reports leaks like this: ==30092== HEAP SUMMARY: ==30092== in use at exit: 80 bytes in 2 blocks ==30092== total heap usage: 286 allocs, 284 frees, 1,781,381 bytes allocated ==30092== ==30092== 40 bytes in 1 blocks are definitely lost in loss record 1 of 2 ==30092== at 0x4C2659D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==30092== by 0x4E333B8: antlr3HashPutI (antlr3collections.c:569) It's because we use HASH as a representation for LIST. The LIST abstracts from HASH, so a user doesn't see a hash 'entry' itself. Hence if the user do list->remove, the HASH returns an 'entry' to us and we return entry->data to the user. But nobody frees the entry itself. So free the entry from now on. Signed-off-by: Jiri Slaby <jirislaby@gmail.com> --- src/antlr3collections.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/src/antlr3collections.c b/src/antlr3collections.c index 48ffe18..01f3f7e 100644 --- a/src/antlr3collections.c +++ b/src/antlr3collections.c @@ -946,7 +946,9 @@ antlr3ListRemove (pANTLR3_LIST list, ANTLR3_INTKEY key) if (entry != NULL) { - return entry->data; + void *data = entry->data; + ANTLR3_FREE(entry); + return data; } else { -- 1.7.3.4
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor