PR binutils/15157
authorNick Clifton <nickc@redhat.com>
Fri, 22 Mar 2013 16:04:55 +0000 (16:04 +0000)
committerNick Clifton <nickc@redhat.com>
Fri, 22 Mar 2013 16:04:55 +0000 (16:04 +0000)
* readelf.c (apply_relocations): Catch relocations with negative
offsets.

binutils/ChangeLog
binutils/readelf.c

index 43f490f..e71ec4f 100644 (file)
@@ -1,3 +1,9 @@
+2013-03-22  Nick Clifton  <nickc@redhat.com>
+
+       PR binutils/15157
+       * readelf.c (apply_relocations): Catch relocations with negative
+       offsets.
+
 2013-03-15  Nick Clifton  <nickc@redhat.com>
 
        * addr2line.c (slurp_symtab): If canonicalization reveals that
index 266e37e..a7831ef 100644 (file)
@@ -10517,7 +10517,7 @@ apply_relocations (void * file,
            }
 
          rloc = start + rp->r_offset;
-         if ((rloc + reloc_size) > end)
+         if ((rloc + reloc_size) > end || (rloc < start))
            {
              warn (_("skipping invalid relocation offset 0x%lx in section %s\n"),
                    (unsigned long) rp->r_offset,