diff options
author | Ian Lance Taylor <ian@airs.com> | 2010-02-23 17:45:38 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 2010-02-23 17:45:38 +0000 |
commit | ca419a6f33e27d59324ba74c4655e551a381aad5 (patch) | |
tree | 71a934c1494b76fcad34218c010af2a09d755396 | |
parent | 135b9c78b2e0da945e37dcd9e1206c6715854d44 (diff) | |
download | gdb-ca419a6f33e27d59324ba74c4655e551a381aad5.zip gdb-ca419a6f33e27d59324ba74c4655e551a381aad5.tar.gz gdb-ca419a6f33e27d59324ba74c4655e551a381aad5.tar.bz2 |
* 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.
-rw-r--r-- | gold/ChangeLog | 7 | ||||
-rw-r--r-- | gold/arm.cc | 5 | ||||
-rw-r--r-- | gold/attributes.cc | 2 |
3 files changed, 13 insertions, 1 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index 45017f2..6259834 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,4 +1,11 @@ 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> * gold.cc (queue_middle_tasks): If no input files were opened, diff --git a/gold/arm.cc b/gold/arm.cc index bc5557a..b8141e0 100644 --- a/gold/arm.cc +++ b/gold/arm.cc @@ -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(); diff --git a/gold/attributes.cc b/gold/attributes.cc index 2024fda..b9b3608 100644 --- a/gold/attributes.cc +++ b/gold/attributes.cc @@ -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) |