Fix uninitialised variable errors
Commit c6291d749a
introduced a number of errors, found by clang.
elf.c:456:7: error: variable 'alloc_ext_size' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
if (_bfd_mul_overflow (symcount, extsym_size, &amt))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
elf.c:464:7: error: variable 'alloc_extshndx_size' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
if (bfd_seek (ibfd, pos, SEEK_SET) != 0
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
elflink.c:2837:11: error: variable 'alloc1_size' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
if (internal_relocs == NULL)
^~~~~~~~~~~~~~~~~~~~~~~
elflink.c:12595:16: error: variable 'ext_size' set but not used [-Werror,-Wunused-but-set-variable]
size_t ext_size = 0;
* elf.c (bfd_elf_get_elf_syms): Fix use of uninitialised variables.
* elflink.c (_bfd_elf_link_info_read_relocs): Likewise.
(bfd_elf_final_link): Fix set but not used warning.
This commit is contained in:
parent
b86d3af60f
commit
9fd82d9142
2 changed files with 12 additions and 12 deletions
20
bfd/elf.c
20
bfd/elf.c
|
@ -456,8 +456,7 @@ bfd_elf_get_elf_syms (bfd *ibfd,
|
|||
if (_bfd_mul_overflow (symcount, extsym_size, &amt))
|
||||
{
|
||||
bfd_set_error (bfd_error_file_too_big);
|
||||
intsym_buf = NULL;
|
||||
goto out;
|
||||
return NULL;
|
||||
}
|
||||
pos = symtab_hdr->sh_offset + symoffset * extsym_size;
|
||||
size_t alloc_ext_size = amt;
|
||||
|
@ -466,7 +465,7 @@ bfd_elf_get_elf_syms (bfd *ibfd,
|
|||
&alloc_ext, ibfd, false))
|
||||
{
|
||||
intsym_buf = NULL;
|
||||
goto out;
|
||||
goto out2;
|
||||
}
|
||||
|
||||
size_t alloc_extshndx_size = 0;
|
||||
|
@ -478,7 +477,7 @@ bfd_elf_get_elf_syms (bfd *ibfd,
|
|||
{
|
||||
bfd_set_error (bfd_error_file_too_big);
|
||||
intsym_buf = NULL;
|
||||
goto out;
|
||||
goto out1;
|
||||
}
|
||||
alloc_extshndx_size = amt;
|
||||
pos = shndx_hdr->sh_offset + symoffset * sizeof (Elf_External_Sym_Shndx);
|
||||
|
@ -489,7 +488,7 @@ bfd_elf_get_elf_syms (bfd *ibfd,
|
|||
ibfd, false))
|
||||
{
|
||||
intsym_buf = NULL;
|
||||
goto out;
|
||||
goto out1;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -498,12 +497,12 @@ bfd_elf_get_elf_syms (bfd *ibfd,
|
|||
if (_bfd_mul_overflow (symcount, sizeof (Elf_Internal_Sym), &amt))
|
||||
{
|
||||
bfd_set_error (bfd_error_file_too_big);
|
||||
goto out;
|
||||
goto out1;
|
||||
}
|
||||
alloc_intsym = (Elf_Internal_Sym *) bfd_malloc (amt);
|
||||
intsym_buf = alloc_intsym;
|
||||
if (intsym_buf == NULL)
|
||||
goto out;
|
||||
goto out1;
|
||||
}
|
||||
|
||||
/* Convert the symbols to internal form. */
|
||||
|
@ -521,12 +520,13 @@ bfd_elf_get_elf_syms (bfd *ibfd,
|
|||
ibfd, (unsigned long) symoffset);
|
||||
free (alloc_intsym);
|
||||
intsym_buf = NULL;
|
||||
goto out;
|
||||
goto out1;
|
||||
}
|
||||
|
||||
out:
|
||||
_bfd_munmap_readonly_temporary (alloc_ext, alloc_ext_size);
|
||||
out1:
|
||||
_bfd_munmap_readonly_temporary (alloc_extshndx, alloc_extshndx_size);
|
||||
out2:
|
||||
_bfd_munmap_readonly_temporary (alloc_ext, alloc_ext_size);
|
||||
|
||||
return intsym_buf;
|
||||
}
|
||||
|
|
|
@ -2835,7 +2835,7 @@ _bfd_elf_link_info_read_relocs (bfd *abfd,
|
|||
else
|
||||
internal_relocs = alloc2 = (Elf_Internal_Rela *) bfd_malloc (size);
|
||||
if (internal_relocs == NULL)
|
||||
goto error_return;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
alloc1 = external_relocs;
|
||||
|
@ -12592,6 +12592,7 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
|
|||
|
||||
if ((sec->flags & SEC_RELOC) != 0)
|
||||
{
|
||||
#ifndef USE_MMAP
|
||||
size_t ext_size = 0;
|
||||
|
||||
if (esdi->rel.hdr != NULL)
|
||||
|
@ -12599,7 +12600,6 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
|
|||
if (esdi->rela.hdr != NULL)
|
||||
ext_size += esdi->rela.hdr->sh_size;
|
||||
|
||||
#ifndef USE_MMAP
|
||||
if (ext_size > max_external_reloc_size)
|
||||
max_external_reloc_size = ext_size;
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue