X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=binutils%2Freadelf.c;h=2188b25863cf7d107d30c3b8d15481ac1f5a6000;hb=1f6f5dba57ffbc073b1ead89647288feaaed2caf;hp=3af729feff37f63e4ab300e63f9456eb89a8f062;hpb=7b045207d1b8980add1c87b643504e3ef987e7a2;p=deliverable%2Fbinutils-gdb.git diff --git a/binutils/readelf.c b/binutils/readelf.c index 3af729feff..2188b25863 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -11266,7 +11266,7 @@ get_symbol_version_string (Filedata * filedata, vers_data = byte_get (data, 2); - if ((vers_data & VERSYM_HIDDEN) == 0 && vers_data <= 1) + if ((vers_data & VERSYM_HIDDEN) == 0 && vers_data == 0) return NULL; /* Usually we'd only see verdef for defined symbols, and verneed for @@ -11301,12 +11301,14 @@ get_symbol_version_string (Filedata * filedata, ivd.vd_ndx = 0; ivd.vd_aux = 0; ivd.vd_next = 0; + ivd.vd_flags = 0; } else { ivd.vd_ndx = BYTE_GET (evd.vd_ndx); ivd.vd_aux = BYTE_GET (evd.vd_aux); ivd.vd_next = BYTE_GET (evd.vd_next); + ivd.vd_flags = BYTE_GET (evd.vd_flags); } off += ivd.vd_next; @@ -11315,6 +11317,9 @@ get_symbol_version_string (Filedata * filedata, if (ivd.vd_ndx == (vers_data & VERSYM_VERSION)) { + if (ivd.vd_ndx == 1 && ivd.vd_flags == VER_FLG_BASE) + return NULL; + off -= ivd.vd_next; off += ivd.vd_aux;