[binutils-gdb] plugin_get_ir_dummy_bfd leak

Alan Modra amodra@sourceware.org
Thu Jan 16 22:08:34 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=82a944eda3e983e48f48cbc3556496f63e9f3087

commit 82a944eda3e983e48f48cbc3556496f63e9f3087
Author: Alan Modra <amodra@gmail.com>
Date:   Sat Jan 11 16:17:20 2025 +1030

    plugin_get_ir_dummy_bfd leak
    
            * plugin.c (plugin_get_ir_dummy_bfd): Free bfd filename.

Diff:
---
 ld/plugin.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/ld/plugin.c b/ld/plugin.c
index ea0c6fcdd67..4a21d130742 100644
--- a/ld/plugin.c
+++ b/ld/plugin.c
@@ -315,12 +315,11 @@ plugin_opt_plugin_arg (const char *arg)
 static bfd *
 plugin_get_ir_dummy_bfd (const char *name, bfd *srctemplate)
 {
-  bfd *abfd;
-  bool bfd_plugin_target;
-
-  bfd_plugin_target = bfd_plugin_target_p (srctemplate->xvec);
-  abfd = bfd_create (concat (name, IRONLY_SUFFIX, (const char *) NULL),
-		     bfd_plugin_target ? link_info.output_bfd : srctemplate);
+  bool bfd_plugin_target = bfd_plugin_target_p (srctemplate->xvec);
+  char *filename = concat (name, IRONLY_SUFFIX, (const char *) NULL);
+  bfd *abfd = bfd_create (filename, (bfd_plugin_target
+				     ? link_info.output_bfd : srctemplate));
+  free (filename);
   if (abfd != NULL)
     {
       abfd->flags |= BFD_LINKER_CREATED | BFD_PLUGIN;


More information about the Binutils-cvs mailing list