diff options
author | Alan Modra <amodra@gmail.com> | 2024-04-04 11:23:32 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2024-04-04 11:33:13 +1030 |
commit | 9fd82d9142d742c9e3efb16466019bd5fe86aef9 (patch) | |
tree | 3e0d0a034010c1092b6b02d7fea5a8d9f2690d07 /bfd/elf.c | |
parent | b86d3af60ffc5a821aa54404f57ffe9476919135 (diff) | |
download | gdb-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.c | 20 |
1 files changed, 10 insertions, 10 deletions
@@ -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; } |