aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2024-04-04 11:23:32 +1030
committerAlan Modra <amodra@gmail.com>2024-04-04 11:33:13 +1030
commit9fd82d9142d742c9e3efb16466019bd5fe86aef9 (patch)
tree3e0d0a034010c1092b6b02d7fea5a8d9f2690d07 /bfd/elf.c
parentb86d3af60ffc5a821aa54404f57ffe9476919135 (diff)
downloadgdb-9fd82d9142d742c9e3efb16466019bd5fe86aef9.zip
gdb-9fd82d9142d742c9e3efb16466019bd5fe86aef9.tar.gz
gdb-9fd82d9142d742c9e3efb16466019bd5fe86aef9.tar.bz2
Fix uninitialised variable errors
Commit c6291d749aec 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.
Diffstat (limited to 'bfd/elf.c')
-rw-r--r--bfd/elf.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/bfd/elf.c b/bfd/elf.c
index 9b98d3b..c305b40 100644
--- a/bfd/elf.c
+++ b/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;
}