[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gdb-patches
Subject:    PATCH for bfd in binutils-2.9.1/gdb-4.17
From:       manfred () s-direktnet ! de (Manfred Hollstein)
Date:       1999-02-23 8:33:00
Message-ID: 14034.52083.787129.934623 () exept ! exept ! de
[Download RAW message or body]

This small patch fixes a bug I observed while running gdb-4.17
on a mips-sgi-irix5.3 system.  Since the debuggee's debug info
was larger than the system's virtual memory was able to provide,
the "goto error_return" in bfd/elf32-mips.c:_bfd_mips_elf_read_ecoff_info
got executed, which in turn tries to cleanup allocated memory.
Unfortunately, it's simply checking probably unitialized
memory to decide whether it should.

Later,
manfred

bfd/ChangeLog:

1999-02-23  Manfred Hollstein  <manfred@s-direktnet.de>

	* elf32-mips.c (_bfd_mips_elf_read_ecoff_info): Ensure only actually
	allocated members will be free'ed at error_return.

diff -rup -x CVS -x RCS -x *.o -x *.info* -x *.html* -x *.elc -x *.dvi -x *.orig -x \
                *~ -x version.el binutils-2.9.1.orig/bfd/elf32-mips.c \
                binutils-2.9.1/bfd/elf32-mips.c
--- binutils-2.9.1.orig/bfd/elf32-mips.c	Fri May  1 17:48:09 1998
+++ binutils-2.9.1/bfd/elf32-mips.c	Tue Feb 23 16:27:52 1999
@@ -2904,6 +2904,20 @@ _bfd_mips_elf_read_ecoff_info (abfd, sec
 
   swap = get_elf_backend_data (abfd)->elf_backend_ecoff_debug_swap;
 
+  /* Ensure only actually allocated members will be free'ed at
+     error_return.  */
+  debug->line = NULL;
+  debug->external_dnr = NULL;
+  debug->external_pdr = NULL;
+  debug->external_sym = NULL;
+  debug->external_opt = NULL;
+  debug->external_aux = NULL;
+  debug->ss = NULL;
+  debug->ssext = NULL;
+  debug->external_fdr = NULL;
+  debug->external_rfd = NULL;
+  debug->external_ext = NULL;
+
   ext_hdr = (char *) bfd_malloc ((size_t) swap->external_hdr_size);
   if (ext_hdr == NULL && swap->external_hdr_size != 0)
     goto error_return;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic