Fix unused DT entry warnings.
DT_STRSZ Implement strtab boundary checks
DT_FLAGS_1 Warn if flags other than DF_1_NOW|DF_1_GLOBAL are set
Bug: 17552334
Bug: 18186310
(cherry picked from commit 6cdeb5234d7f4523fe9d83974f265d80f10512a6)
Change-Id: I7ffc7bc600798308a77ad949a644949b64250ae2
diff --git a/linker/linker.h b/linker/linker.h
index ef2fbcd..6329efd 100644
--- a/linker/linker.h
+++ b/linker/linker.h
@@ -136,7 +136,9 @@
soinfo* next;
unsigned flags;
+ private:
const char* strtab;
+ public:
ElfW(Sym)* symtab;
size_t nbucket;
@@ -221,7 +223,9 @@
ElfW(Addr) resolve_symbol_address(ElfW(Sym)* s);
- bool inline has_min_version(uint32_t min_version) {
+ const char* get_string(ElfW(Word) index) const;
+
+ bool inline has_min_version(uint32_t min_version) const {
return (flags & FLAG_NEW_SOINFO) != 0 && version >= min_version;
}
private:
@@ -249,6 +253,9 @@
// version >= 1
off64_t file_offset;
int rtld_flags;
+ size_t strtab_size;
+
+ friend soinfo* get_libdl_info();
};
extern soinfo* get_libdl_info();