aboutsummaryrefslogtreecommitdiff
path: root/elf/dynamic-link.h
diff options
context:
space:
mode:
Diffstat (limited to 'elf/dynamic-link.h')
-rw-r--r--elf/dynamic-link.h8
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