aboutsummaryrefslogtreecommitdiff
path: root/gold
diff options
context:
space:
mode:
Diffstat (limited to 'gold')
-rw-r--r--gold/ChangeLog3
-rw-r--r--gold/object.cc7
2 files changed, 10 insertions, 0 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 3e3f4fd..b73da9b 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,5 +1,8 @@
2008-04-23 Ian Lance Taylor <iant@google.com>
+ * object.cc (Sized_relobj::include_section_group): Check for
+ invalid section group.
+
* object.cc (make_elf_object): Correct test for 64-bit ELF file
header size.
diff --git a/gold/object.cc b/gold/object.cc
index 9cfd886..1672225 100644
--- a/gold/object.cc
+++ b/gold/object.cc
@@ -609,6 +609,13 @@ Sized_relobj<size, big_endian>::include_section_group(
secnum, index);
continue;
}
+
+ // Check for an earlier section number, since we're going to get
+ // it wrong--we may have already decided to include the section.
+ if (secnum < index)
+ this->error(_("invalid section group %u refers to earlier section %u"),
+ index, secnum);
+
(*omit)[secnum] = true;
}