summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Demetriou <cgd@google.com>2008-07-21 05:05:23 +0000
committerChris Demetriou <cgd@google.com>2008-07-21 05:05:23 +0000
commit7151edcfd881fac54caad6ad32aa65823138c53e (patch)
tree70f441c10a924cd9b40fe3fa04ee9d6000c81e64
parentedd84ded2063f4a7c0dad525df3c1a003b1791a0 (diff)
downloadgdb-7151edcfd881fac54caad6ad32aa65823138c53e.tar.gz
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.
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/elfread.c2
2 files changed, 8 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index d3e5943c8c9..73c032ceec8 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+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.
+
2008-07-20 Chris Demetriou <cgd@google.com>
* MAINTAINERS (Write After Approval): Add self.
diff --git a/gdb/elfread.c b/gdb/elfread.c
index 363702a99fc..0b082472bb8 100644
--- a/gdb/elfread.c
+++ b/gdb/elfread.c
@@ -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;