diff options
author | Alan Modra <amodra@gmail.com> | 2019-08-16 15:17:23 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2019-08-17 18:18:51 +0930 |
commit | e8d25d40456520c8890937915df77dbd2d748d76 (patch) | |
tree | 66e61659d480806a34b4d05555ddea106bda2063 | |
parent | 86bee50d3c32db6e626149525af6ab241705a1b4 (diff) | |
download | binutils-gdb-e8d25d40456520c8890937915df77dbd2d748d76.tar.gz |
PR24909, Uninitialized use on stack in readelf
PR 24909
PR 23499
* readelf.c (get_symbol_version_string): Set sym_info earlier.
(cherry picked from commit 0b8b76098ff3d3dcd0c621f2e45cc0b4e7211d6a)
-rw-r--r-- | binutils/ChangeLog | 6 | ||||
-rw-r--r-- | binutils/readelf.c | 9 |
2 files changed, 9 insertions, 6 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 01121818909..7fb60cc1ce8 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +2019-08-16 Alan Modra <amodra@gmail.com> + + PR 24909 + PR 23499 + * readelf.c (get_symbol_version_string): Set sym_info earlier. + 2019-07-05 Szabolcs Nagy <szabolcs.nagy@arm.com> Backport from mainline. diff --git a/binutils/readelf.c b/binutils/readelf.c index 6b4eb41aeea..ef294e18ddc 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -11401,6 +11401,7 @@ get_symbol_version_string (Filedata * filedata, if ((vers_data & VERSYM_HIDDEN) == 0 && vers_data == 0) return NULL; + *sym_info = (vers_data & VERSYM_HIDDEN) != 0 ? symbol_hidden : symbol_public; max_vd_ndx = 0; /* Usually we'd only see verdef for defined symbols, and verneed for @@ -11466,12 +11467,8 @@ get_symbol_version_string (Filedata * filedata, ivda.vda_name = BYTE_GET (evda.vda_name); if (psym->st_name != ivda.vda_name) - { - *sym_info = ((vers_data & VERSYM_HIDDEN) != 0 - ? symbol_hidden : symbol_public); - return (ivda.vda_name < strtab_size - ? strtab + ivda.vda_name : _("<corrupt>")); - } + return (ivda.vda_name < strtab_size + ? strtab + ivda.vda_name : _("<corrupt>")); } } } |