* arm.cc (Target_arm::do_finalize_sections): Create attribute

section if it does not already exist.
	* attributes.cc	(Attributes_section_data::Attributes_section_data):
	Don't crash if size is zero.
This commit is contained in:
Ian Lance Taylor 2010-02-23 17:45:38 +00:00
parent 135b9c78b2
commit ca419a6f33
3 changed files with 13 additions and 1 deletions

View file

@ -1,3 +1,10 @@
2010-02-23 Viktor Kutuzov <vkutuzov@accesssoftek.com>
* arm.cc (Target_arm::do_finalize_sections): Create attribute
section if it does not already exist.
* attributes.cc (Attributes_section_data::Attributes_section_data):
Don't crash if size is zero.
2010-02-23 Viktor Kutuzov <vkutuzov@accesssoftek.com>
Ian Lance Taylor <iant@google.com>

View file

@ -7554,6 +7554,11 @@ Target_arm<big_endian>::do_finalize_sections(
const Input_objects* input_objects,
Symbol_table* symtab)
{
// Create an empty uninitialized attribute section if we still don't have it
// at this moment.
if (this->attributes_section_data_ == NULL)
this->attributes_section_data_ = new Attributes_section_data(NULL, 0);
// Merge processor-specific flags.
for (Input_objects::Relobj_iterator p = input_objects->relobj_begin();
p != input_objects->relobj_end();

View file

@ -278,7 +278,7 @@ Attributes_section_data::Attributes_section_data(
const unsigned char *p = view;
p = view;
if (*(p++) == 'A')
if (size > 0 && p != NULL && *(p++) == 'A')
{
size--;
while (size > 0)