aboutsummaryrefslogtreecommitdiff
path: root/gold/object.cc
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2008-06-25 17:10:08 +0000
committerCary Coutant <ccoutant@google.com>2008-06-25 17:10:08 +0000
commit3f2e6a2da5d9348efaa98eb06c430bec5fbe596b (patch)
treebcc83ddeb7ca9e2c1b44767bb6246ffecd594b92 /gold/object.cc
parentc8187e1509b28d4d9c0bbc2de688144ef80537c0 (diff)
downloadgdb-3f2e6a2da5d9348efaa98eb06c430bec5fbe596b.zip
gdb-3f2e6a2da5d9348efaa98eb06c430bec5fbe596b.tar.gz
gdb-3f2e6a2da5d9348efaa98eb06c430bec5fbe596b.tar.bz2
2008-06-25 Cary Coutant <ccoutant@google.com>
* fileread.cc (File_read::make_view): Assert on zero-length view. * object.cc (Sized_relobj::do_read_symbols): Don't try to read symbol table when there are no symbols to read.
Diffstat (limited to 'gold/object.cc')
-rw-r--r--gold/object.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/gold/object.cc b/gold/object.cc
index b49bee1..8659cb2 100644
--- a/gold/object.cc
+++ b/gold/object.cc
@@ -452,6 +452,12 @@ Sized_relobj<size, big_endian>::do_read_symbols(Read_symbols_data* sd)
off_t readoff = this->has_eh_frame_ ? dataoff : extoff;
section_size_type readsize = this->has_eh_frame_ ? datasize : extsize;
+ if (readsize == 0)
+ {
+ // No external symbols. Also weird but also legal.
+ return;
+ }
+
File_view* fvsymtab = this->get_lasting_view(readoff, readsize, true, false);
// Read the section header for the symbol names.