about summary refs log tree commit diff
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