diff --git a/gdb.changes b/gdb.changes index 55704ad..66ecadf 100644 --- a/gdb.changes +++ b/gdb.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Apr 13 15:43:47 CEST 2007 - schwab@suse.de + +- Avoid crash on object with no text section [#176306]. + ------------------------------------------------------------------- Wed Apr 11 17:16:45 CEST 2007 - schwab@suse.de diff --git a/gdb.spec b/gdb.spec index e0f8143..82dd375 100644 --- a/gdb.spec +++ b/gdb.spec @@ -21,7 +21,7 @@ Group: Development/Tools/Debuggers Autoreqprov: on PreReq: %{install_info_prereq} Version: 6.6 -Release: 29 +Release: 30 Summary: The GNU Debugger Source: gdb-%{version}.tar.bz2 Patch1: gdb-misc.patch @@ -29,6 +29,7 @@ Patch2: warn.patch Patch3: readline-5.1-random.patch Patch4: readnever.patch Patch5: gstack.patch +Patch6: sect-index-text.diff Patch7: ppc-dwarf2-cfi.patch Patch8: pie-relocate.diff Patch9: mst-solib-trampoline.diff @@ -76,6 +77,7 @@ Authors: %patch3 %patch4 %patch5 +%patch6 cd gdb %patch7 cd .. @@ -151,6 +153,8 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Fri Apr 13 2007 - schwab@suse.de +- Avoid crash on object with no text section [#176306]. * Wed Apr 11 2007 - schwab@suse.de - Handle non-threaded processes in gstack [#262694]. * Sun Apr 01 2007 - schwab@suse.de diff --git a/sect-index-text.diff b/sect-index-text.diff new file mode 100644 index 0000000..f6b33a4 --- /dev/null +++ b/sect-index-text.diff @@ -0,0 +1,25 @@ +--- gdb/dwarf2read.c.~1.217.~ 2007-04-12 11:24:48.000000000 +0200 ++++ gdb/dwarf2read.c 2007-04-13 15:37:15.000000000 +0200 +@@ -1194,6 +1194,9 @@ dwarf2_locate_sections (bfd *abfd, asect + void + dwarf2_build_psymtabs (struct objfile *objfile, int mainline) + { ++ if (objfile->sect_index_text == -1) ++ return; ++ + /* We definitely need the .debug_info and .debug_abbrev sections */ + + dwarf2_per_objfile->info_buffer = dwarf2_read_section (objfile, dwarf_info_section); +--- gdb/ia64-tdep.c 28 Mar 2007 18:56:06 -0000 1.148 ++++ gdb/ia64-tdep.c 13 Apr 2007 12:30:47 -0000 +@@ -2692,6 +2692,10 @@ ia64_get_dyn_info_list (unw_addr_space_t + { + void *buf = NULL; + ++ if (objfile->sect_index_text == -1) ++ /* No text section. */ ++ continue; ++ + text_sec = objfile->sections + SECT_OFF_TEXT (objfile); + ip = text_sec->addr; + ret = ia64_find_unwind_table (objfile, ip, &di, &buf);