Fix coff_start_symtab resource leak found by Coverity

Message ID 1550848393-2743-1-git-send-email-gbenson@redhat.com
State New, archived
Headers

Commit Message

Gary Benson Feb. 22, 2019, 3:13 p.m. UTC
  Hi all,

This commit fixes a resource leak found by Coverity, where
coff_start_symtab performs an xstrdup that is now performed
within start_symtab by buildsym_compunit::buildsym_compunit.

Built and regtested on RHEL 7.6 x86_64.

Ok to commit?

Thanks,
Gary

--
gdb/ChangeLog:

	* coffread.c (coff_start_symtab): Remove unnecessary xstrdup.
---
 gdb/ChangeLog  | 4 ++++
 gdb/coffread.c | 5 +----
 2 files changed, 5 insertions(+), 4 deletions(-)
  

Comments

Tom Tromey Feb. 22, 2019, 5:04 p.m. UTC | #1
>>>>> "Gary" == Gary Benson <gbenson@redhat.com> writes:

Gary> Hi all,
Gary> This commit fixes a resource leak found by Coverity, where
Gary> coff_start_symtab performs an xstrdup that is now performed
Gary> within start_symtab by buildsym_compunit::buildsym_compunit.

Gary> Built and regtested on RHEL 7.6 x86_64.

Gary> Ok to commit?

Yes, thank you.

Tom
  
Gary Benson March 1, 2019, 2:09 p.m. UTC | #2
Tom Tromey wrote:
> >>>>> "Gary" == Gary Benson <gbenson@redhat.com> writes:
>
> Gary> Hi all,
> Gary> This commit fixes a resource leak found by Coverity, where
> Gary> coff_start_symtab performs an xstrdup that is now performed
> Gary> within start_symtab by buildsym_compunit::buildsym_compunit.
>
> Gary> Built and regtested on RHEL 7.6 x86_64.
>
> Gary> Ok to commit?
>
> Yes, thank you.

Thanks, I pushed it.

Cheers,
Gary
  

Patch

diff --git a/gdb/coffread.c b/gdb/coffread.c
index 6381cd3..91a112e 100644
--- a/gdb/coffread.c
+++ b/gdb/coffread.c
@@ -385,10 +385,7 @@  coff_start_symtab (struct objfile *objfile, const char *name)
 {
   within_function = 0;
   start_symtab (objfile,
-  /* We fill in the filename later.  start_symtab puts this pointer
-     into last_source_file and we put it in subfiles->name, which
-     end_symtab frees; that's why it must be malloc'd.  */
-		 xstrdup (name),
+		name,
   /* We never know the directory name for COFF.  */
 		 NULL,
   /* The start address is irrelevant, since we call