mirror of
git://sourceware.org/git/libabigail.git
synced 2024-12-15 22:44:41 +00:00
ctf-reader: Fix memory leak reported by valgrind
runtestreadctf fails executed by make check-valgrind, a memory leak is reported: at 0x48397B5: malloc (vg_replace_malloc.c:381) by 0x56E6316: ctf_bufopen_internal (ctf-open.c:1388) by 0x56E5FD3: ctf_bufopen (ctf-open.c:1297) by 0x56CD688: ctf_arc_bufopen (ctf-archive.c:444) by 0x4EB31FD: abigail::ctf_reader::read_corpus(abigail::ctf_reader::read_context*,\ abigail::elf_reader::status&) (abg-ctf-reader.cc:1111) by 0x10C6BB: test_task_ctf::perform() (test-read-ctf.cc:236) by 0x4E8E9AF: abigail::workers::worker::wait_to_execute_a_task\ (abigail::workers::queue::priv*) (abg-workers.cc:400) by 0x543BEAD: start_thread (pthread_create.c:463) by 0x5369A5E: clone (clone.S:95) This is happening because `ctf_variable_next' bumps the dictionary reference counter, so when `ctf_close' is called it doesn't free the memory allocated by the dict, because `ctf_refcnt' is greater than one. Therefore `ctf_dict_close' is required. * src/abg-ctf-reader.cc (process_ctf_archive): Add ctf_dict_close Signed-off-by: Guillermo E. Martinez <guillermo.e.martinez@oracle.com> Signed-off-by: Dodji Seketeli <dodji@redhat.com>
This commit is contained in:
parent
b5a914c208
commit
e6f3193b0b
@ -941,6 +941,8 @@ process_ctf_archive(read_context *ctxt, corpus_sptr corp)
|
||||
}
|
||||
if (ctf_errno(ctf_dict) != ECTF_NEXT_END)
|
||||
fprintf(stderr, "ERROR from ctf_symbol_next\n");
|
||||
|
||||
ctf_dict_close(ctf_dict);
|
||||
}
|
||||
if (ctf_err != ECTF_NEXT_END)
|
||||
fprintf(stderr, "ERROR from ctf_archive_next\n");
|
||||
|
Loading…
Reference in New Issue
Block a user