From: Alan Modra Date: Tue, 28 Mar 2023 22:43:17 +0000 (+1030) Subject: Re: Fix an aout memory leak X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=647744420e69bf5fc8f5ab88a9d7dabd6087a890;p=binutils-gdb.git Re: Fix an aout memory leak We have way too much duplicated code in bfd. Apply dd3a3d0af9f6 and 920581c57e08 to pdp11.c. * pdp11.c (bfd_free_cached_info): Free line_buf. Return true if tdata.aout_data is NULL. --- diff --git a/bfd/pdp11.c b/bfd/pdp11.c index 862cf49fda3..9edbba92c82 100644 --- a/bfd/pdp11.c +++ b/bfd/pdp11.c @@ -2539,12 +2539,13 @@ NAME (aout, bfd_free_cached_info) (bfd *abfd) { asection *o; - if (bfd_get_format (abfd) != bfd_object) + if (bfd_get_format (abfd) != bfd_object + || abfd->tdata.aout_data == NULL) return true; #define BFCI_FREE(x) do { free (x); x = NULL; } while (0) + BFCI_FREE (adata (abfd).line_buf); BFCI_FREE (obj_aout_symbols (abfd)); - #ifdef USE_MMAP obj_aout_external_syms (abfd) = 0; bfd_free_window (&obj_aout_sym_window (abfd));