diff options
Diffstat (limited to 'bfd/elf32-sh.c')
-rw-r--r-- | bfd/elf32-sh.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/bfd/elf32-sh.c b/bfd/elf32-sh.c index 73b861e..8ababcf 100644 --- a/bfd/elf32-sh.c +++ b/bfd/elf32-sh.c @@ -5085,6 +5085,13 @@ sh_elf_get_relocated_section_contents (bfd *output_bfd, symtab_hdr = &elf_symtab_hdr (input_bfd); + bfd_byte *orig_data = data; + if (data == NULL) + { + data = bfd_malloc (input_section->size); + if (data == NULL) + return NULL; + } memcpy (data, elf_section_data (input_section)->this_hdr.contents, (size_t) input_section->size); @@ -5155,6 +5162,8 @@ sh_elf_get_relocated_section_contents (bfd *output_bfd, free (isymbuf); if (elf_section_data (input_section)->relocs != internal_relocs) free (internal_relocs); + if (orig_data == NULL) + free (data); return NULL; } |