From 8e7e446446b2de0c44e453a298718a0411f47205 Mon Sep 17 00:00:00 2001 From: Nick Alcock Date: Tue, 2 Mar 2021 15:10:05 +0000 Subject: [PATCH] libctf: free ctf_dynsyms properly In the "no symbols" case (commonplace for executables), we were freeing the ctf_dynsyms using free(), instead of ctf_dynhash_destroy(), leaking a little memory. (This is harmless in the common case of ld usage, but libctf might be used by persistent processes too.) libctf/ChangeLog 2021-03-02 Nick Alcock * ctf-link.c (ctf_link_shuffle_syms): Free ctf_dynsyms properly. --- libctf/ChangeLog | 4 ++++ libctf/ctf-link.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/libctf/ChangeLog b/libctf/ChangeLog index f0a1754d5ec..8fa98c68a82 100644 --- a/libctf/ChangeLog +++ b/libctf/ChangeLog @@ -1,3 +1,7 @@ +2021-03-02 Nick Alcock + + * ctf-link.c (ctf_link_shuffle_syms): Free ctf_dynsyms properly. + 2021-03-02 Nick Alcock * ctf-dump.c (ctf_dump_format_type): Fix signed/unsigned confusion. diff --git a/libctf/ctf-link.c b/libctf/ctf-link.c index 05733a0cb7d..882d4297e4f 100644 --- a/libctf/ctf-link.c +++ b/libctf/ctf-link.c @@ -1580,7 +1580,7 @@ ctf_link_shuffle_syms (ctf_dict_t *fp) if (!ctf_dynhash_elements (fp->ctf_dynsyms)) { ctf_dprintf ("No symbols: not a final link.\n"); - free (fp->ctf_dynsyms); + ctf_dynhash_destroy (fp->ctf_dynsyms); fp->ctf_dynsyms = NULL; return 0; } -- 2.30.2