From 019cdb1a59d66739843fdb0e6221566bcf7d60bd Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 7 Nov 2007 00:31:32 +0000 Subject: From Craig Silverstein: Don't crash if we see a file we don't recognize. --- gold/archive.cc | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'gold/archive.cc') diff --git a/gold/archive.cc b/gold/archive.cc index 4d95b79..5862f34 100644 --- a/gold/archive.cc +++ b/gold/archive.cc @@ -399,12 +399,19 @@ Archive::include_member(Symbol_table* symtab, Layout* layout, this->input_file_, memoff, ehdr_buf, read_size); - input_objects->add_object(obj); + if (input_objects->add_object(obj)) + { + Read_symbols_data sd; + obj->read_symbols(&sd); + obj->layout(symtab, layout, &sd); + obj->add_symbols(symtab, &sd); + } + else + { + // FIXME: We need to close the descriptor here. + delete obj; + } - Read_symbols_data sd; - obj->read_symbols(&sd); - obj->layout(symtab, layout, &sd); - obj->add_symbols(symtab, &sd); } // Add_archive_symbols methods. -- cgit v1.1