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
Change-Id: Iaad29cd52f5b2d7d2f785fb351697906dc1617d9
This commit is contained in:
Dmitriy Ivanov
2014-09-29 19:14:45 -07:00
parent 9997daa0ff
commit 6cdeb5234d
4 changed files with 66 additions and 9 deletions

View File

@@ -136,7 +136,9 @@ struct soinfo {
soinfo* next;
unsigned flags;
private:
const char* strtab;
public:
ElfW(Sym)* symtab;
size_t nbucket;
@@ -222,7 +224,9 @@ struct soinfo {
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 @@ struct soinfo {
// version >= 1
int rtld_flags;
size_t strtab_size;
friend soinfo* get_libdl_info();
};
extern soinfo* get_libdl_info();