Re: Use of uninitialized variables in binutils-2.17
On Sun, Jul 31, 2016 at 10:00 AM, Stefan Kempf wrote: > clang errors out about use of undefined variables when building > binutils-2.17. > > In elf.c, do not increment `s' before it is initialized. At the time > of the increment, `s' is otherwise unused anyway. Indeed, it's dead there. > In elflink.c, initialize sec_contents and l_sec_contents to make > sure that the free(sec_contents) and free(l_sec_contents) are called > on valid pointers. clang only complained about l_sec_contents, right? sec_contents is always set by bfd_malloc_and_get_section() ...but initializing both is clearer, yes. ok guenther@
Re: Use of uninitialized variables in binutils-2.17
Stefan Kempf writes: > clang errors out about use of undefined variables when building > binutils-2.17. > > In elf.c, do not increment `s' before it is initialized. At the time > of the increment, `s' is otherwise unused anyway. > > In elflink.c, initialize sec_contents and l_sec_contents to make > sure that the free(sec_contents) and free(l_sec_contents) are called > on valid pointers. > > ok? ok > Index: gnu/usr.bin/binutils-2.17/bfd/elf.c > === > RCS file: /cvs/src/gnu/usr.bin/binutils-2.17/bfd/elf.c,v > retrieving revision 1.10 > diff -u -p -r1.10 elf.c > --- gnu/usr.bin/binutils-2.17/bfd/elf.c 26 Jul 2016 02:38:12 - > 1.10 > +++ gnu/usr.bin/binutils-2.17/bfd/elf.c 31 Jul 2016 14:54:14 - > @@ -8617,7 +8617,7 @@ _bfd_elf_get_synthetic_symtab (bfd *abfd >count = relplt->size / hdr->sh_entsize; >size = count * sizeof (asymbol); >p = relplt->relocation; > - for (i = 0; i < count; i++, s++, p++) > + for (i = 0; i < count; i++, p++) > size += strlen ((*p->sym_ptr_ptr)->name) + sizeof ("@plt"); > >s = *ret = bfd_malloc (size); > Index: gnu/usr.bin/binutils-2.17/bfd/elflink.c > === > RCS file: /cvs/src/gnu/usr.bin/binutils-2.17/bfd/elflink.c,v > retrieving revision 1.17 > diff -u -p -r1.17 elflink.c > --- gnu/usr.bin/binutils-2.17/bfd/elflink.c 22 Jun 2016 13:29:14 - > 1.17 > +++ gnu/usr.bin/binutils-2.17/bfd/elflink.c 31 Jul 2016 14:54:15 - > @@ -9862,7 +9862,7 @@ _bfd_elf_section_already_linked (bfd *ab > abfd, sec); > else if (sec->size != 0) > { > - bfd_byte *sec_contents, *l_sec_contents; > + bfd_byte *sec_contents = NULL, *l_sec_contents = NULL; > > if (!bfd_malloc_and_get_section (abfd, sec, &sec_contents)) > (*_bfd_error_handler) > -- jca | PGP: 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE
Use of uninitialized variables in binutils-2.17
clang errors out about use of undefined variables when building binutils-2.17. In elf.c, do not increment `s' before it is initialized. At the time of the increment, `s' is otherwise unused anyway. In elflink.c, initialize sec_contents and l_sec_contents to make sure that the free(sec_contents) and free(l_sec_contents) are called on valid pointers. ok? Index: gnu/usr.bin/binutils-2.17/bfd/elf.c === RCS file: /cvs/src/gnu/usr.bin/binutils-2.17/bfd/elf.c,v retrieving revision 1.10 diff -u -p -r1.10 elf.c --- gnu/usr.bin/binutils-2.17/bfd/elf.c 26 Jul 2016 02:38:12 - 1.10 +++ gnu/usr.bin/binutils-2.17/bfd/elf.c 31 Jul 2016 14:54:14 - @@ -8617,7 +8617,7 @@ _bfd_elf_get_synthetic_symtab (bfd *abfd count = relplt->size / hdr->sh_entsize; size = count * sizeof (asymbol); p = relplt->relocation; - for (i = 0; i < count; i++, s++, p++) + for (i = 0; i < count; i++, p++) size += strlen ((*p->sym_ptr_ptr)->name) + sizeof ("@plt"); s = *ret = bfd_malloc (size); Index: gnu/usr.bin/binutils-2.17/bfd/elflink.c === RCS file: /cvs/src/gnu/usr.bin/binutils-2.17/bfd/elflink.c,v retrieving revision 1.17 diff -u -p -r1.17 elflink.c --- gnu/usr.bin/binutils-2.17/bfd/elflink.c 22 Jun 2016 13:29:14 - 1.17 +++ gnu/usr.bin/binutils-2.17/bfd/elflink.c 31 Jul 2016 14:54:15 - @@ -9862,7 +9862,7 @@ _bfd_elf_section_already_linked (bfd *ab abfd, sec); else if (sec->size != 0) { - bfd_byte *sec_contents, *l_sec_contents; + bfd_byte *sec_contents = NULL, *l_sec_contents = NULL; if (!bfd_malloc_and_get_section (abfd, sec, &sec_contents)) (*_bfd_error_handler)