diff options
Diffstat (limited to 'elf/dynamic-link.h')
-rw-r--r-- | elf/dynamic-link.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/elf/dynamic-link.h b/elf/dynamic-link.h index 199e1bac5c..5d48b16511 100644 --- a/elf/dynamic-link.h +++ b/elf/dynamic-link.h @@ -159,10 +159,12 @@ elf_get_dynamic_info (struct link_map *l, ElfW(Dyn) *temp) assert (info[DT_RELENT]->d_un.d_val == sizeof (ElfW(Rel))); #endif #ifdef RTLD_BOOTSTRAP + /* Only the bind now flags are allowed. */ + assert (info[VERSYMIDX (DT_FLAGS_1)] == NULL + || info[VERSYMIDX (DT_FLAGS_1)]->d_un.d_val == DF_1_NOW); + assert (info[DT_FLAGS] == NULL + || info[DT_FLAGS]->d_un.d_val == DF_BIND_NOW); /* Flags must not be set for ld.so. */ - assert (info[DT_FLAGS] == NULL); - assert (info[VERSYMIDX (DT_FLAGS_1)] == NULL); - /* The dynamic linker should have none of these set. */ assert (info[DT_RUNPATH] == NULL); assert (info[DT_RPATH] == NULL); #else |