This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[commited patch] fix ELF segment vs. loadable section check


This patch was originally sent by Sergei Poselenov in
http://sourceware.org/ml/gdb/2007-12/msg00146.html -- I just tested it
and added a changelog entry.

tested by...
 * build/check on i686-linux before after (no changes)
 * hand-crafted test case which triggered the warning before, verified
   that it went away after the fix.

committed as obvious.


chris
--
2008-07-20  Sergei Poselenov  <sposelenov@emcraft.com>
            Chris Demetriou  <cgd@google.com>

	* elfread.c (elf_symfile_segments): Fix the check that each loadable
	section fits within an ELF segment to handle ELF segments that hit
	the end of the address space.

Index: elfread.c
===================================================================
RCS file: /cvs/src/src/gdb/elfread.c,v
retrieving revision 1.72
diff -u -u -p -r1.72 elfread.c
--- elfread.c	14 May 2008 18:14:34 -0000	1.72
+++ elfread.c	21 Jul 2008 05:02:47 -0000
@@ -108,7 +108,7 @@ elf_symfile_segments (bfd *abfd)
       for (j = 0; j < num_segments; j++)
 	if (segments[j]->p_memsz > 0
 	    && vma >= segments[j]->p_vaddr
-	    && vma < segments[j]->p_vaddr + segments[j]->p_memsz)
+	    && (vma - segments[j]->p_vaddr) < segments[j]->p_memsz)
 	  {
 	    data->segment_info[i] = j + 1;
 	    break;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]