about summary refs log tree commit diff
path: root/elf/setup-vdso.h
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2021-07-19 18:42:26 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2021-12-28 08:40:38 -0300
commitf0e23d34a7bdf6b90fba954ee741419171ac41b2 (patch)
tree5feb3808f994056a7e846f423124a718c242eb2f /elf/setup-vdso.h
parentd1b38173c9255b1a4ae00018ad9b35404a7c74d0 (diff)
downloadglibc-f0e23d34a7bdf6b90fba954ee741419171ac41b2.tar.gz
glibc-f0e23d34a7bdf6b90fba954ee741419171ac41b2.tar.xz
glibc-f0e23d34a7bdf6b90fba954ee741419171ac41b2.zip
elf: Issue audit la_objopen for vDSO
The vDSO is is listed in the link_map chain, but is never the subject of
an la_objopen call.  A new internal flag __RTLD_VDSO is added that
acts as __RTLD_OPENEXEC to allocate the required 'struct auditstate'
extra space for the 'struct link_map'.

The return value from the callback is currently ignored, since there
is no PLT call involved by glibc when using the vDSO, neither the vDSO
are exported directly.

Checked on x86_64-linux-gnu, i686-linux-gnu, and aarch64-linux-gnu.

Reviewed-by: Florian Weimer <fweimer@redhat.com>
Diffstat (limited to 'elf/setup-vdso.h')
-rw-r--r--elf/setup-vdso.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/elf/setup-vdso.h b/elf/setup-vdso.h
index 3f20578046..2b013d974a 100644
--- a/elf/setup-vdso.h
+++ b/elf/setup-vdso.h
@@ -30,7 +30,7 @@ setup_vdso (struct link_map *main_map __attribute__ ((unused)),
      We just want our data structures to describe it as if we had just
      mapped and relocated it normally.  */
   struct link_map *l = _dl_new_object ((char *) "", "", lt_library, NULL,
-				       0, LM_ID_BASE);
+				       __RTLD_VDSO, LM_ID_BASE);
   if (__glibc_likely (l != NULL))
     {
       l->l_phdr = ((const void *) GLRO(dl_sysinfo_dso)