]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
PR24909, Uninitialized use on stack in readelf
authorAlan Modra <amodra@gmail.com>
Fri, 16 Aug 2019 05:47:23 +0000 (15:17 +0930)
committerAlan Modra <amodra@gmail.com>
Sat, 17 Aug 2019 08:48:51 +0000 (18:18 +0930)
PR 24909
PR 23499
* readelf.c (get_symbol_version_string): Set sym_info earlier.

(cherry picked from commit 0b8b76098ff3d3dcd0c621f2e45cc0b4e7211d6a)

binutils/ChangeLog
binutils/readelf.c

index 011218189095a96721ac8909c14f746cd3d2d23a..7fb60cc1ce818df50b2646fca14e0ac90e06c246 100644 (file)
@@ -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.
index 6b4eb41aeeab802a3745570e504cb5b9839096b6..ef294e18ddc6a58f4be77dc5f59b90150a7acefd 100644 (file)
@@ -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>"));
            }
        }
     }