X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2Felf32-m32c.c;h=7a97d6d9092f8a66a62549acafa602840b49866f;hb=190eb1ddba41aad3a31edead9392473ae9d3bbe3;hp=89bdccacd062cf3c1dd035f3b6058847e9154e6e;hpb=1f4361a77b18c5ab32baf2f30fefe5e301e017be;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/elf32-m32c.c b/bfd/elf32-m32c.c index 89bdccacd0..7a97d6d909 100644 --- a/bfd/elf32-m32c.c +++ b/bfd/elf32-m32c.c @@ -1284,7 +1284,7 @@ static bfd_vma m32c_offset_for_reloc (bfd *abfd, Elf_Internal_Rela *rel, Elf_Internal_Shdr *symtab_hdr, - Elf_External_Sym_Shndx *shndx_buf ATTRIBUTE_UNUSED, + bfd_byte *shndx_buf ATTRIBUTE_UNUSED, Elf_Internal_Sym *intsyms) { bfd_vma symval; @@ -1442,7 +1442,7 @@ m32c_elf_relax_section bfd_byte * free_contents = NULL; Elf_Internal_Sym *intsyms = NULL; Elf_Internal_Sym *free_intsyms = NULL; - Elf_External_Sym_Shndx *shndx_buf = NULL; + bfd_byte *shndx_buf = NULL; int machine; if (abfd == elf_hash_table (link_info)->dynobj @@ -1499,13 +1499,12 @@ m32c_elf_relax_section bfd_set_error (bfd_error_file_too_big); goto error_return; } - shndx_buf = (Elf_External_Sym_Shndx *) bfd_malloc (amt); - if (shndx_buf == NULL) + if (bfd_seek (abfd, shndx_hdr->sh_offset, SEEK_SET) != 0) goto error_return; - if (bfd_seek (abfd, shndx_hdr->sh_offset, SEEK_SET) != 0 - || bfd_bread (shndx_buf, amt, abfd) != amt) + shndx_buf = _bfd_malloc_and_read (abfd, amt, amt); + if (shndx_buf == NULL) goto error_return; - shndx_hdr->contents = (bfd_byte *) shndx_buf; + shndx_hdr->contents = shndx_buf; } /* Get a copy of the native relocations. */ @@ -1902,11 +1901,8 @@ m32c_elf_relax_section } /* next relocation */ - if (free_relocs != NULL) - { - free (free_relocs); - free_relocs = NULL; - } + free (free_relocs); + free_relocs = NULL; if (free_contents != NULL) { @@ -1932,7 +1928,7 @@ m32c_elf_relax_section /* Cache the symbols for elf_link_input_bfd. */ else { - symtab_hdr->contents = NULL /* (unsigned char *) intsyms*/; + symtab_hdr->contents = NULL /* (unsigned char *) intsyms*/; } free_intsyms = NULL; @@ -1941,17 +1937,14 @@ m32c_elf_relax_section return TRUE; error_return: - if (free_relocs != NULL) - free (free_relocs); - if (free_contents != NULL) - free (free_contents); + free (free_relocs); + free (free_contents); if (shndx_buf != NULL) { shndx_hdr->contents = NULL; free (shndx_buf); } - if (free_intsyms != NULL) - free (free_intsyms); + free (free_intsyms); return FALSE; }