about summary refs log tree commit diff
path: root/elf/dl-load.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2009-03-16 02:16:30 +0000
committerUlrich Drepper <drepper@redhat.com>2009-03-16 02:16:30 +0000
commit2ca285b098890abde89fc79bbaf69432b14f18d1 (patch)
treed08f6c7bd1d6b3d5d11eeb3a311650afdf317a4c /elf/dl-load.c
parent7e342603659dddcb768a516b93844870884ad2c4 (diff)
downloadglibc-2ca285b098890abde89fc79bbaf69432b14f18d1.tar.gz
glibc-2ca285b098890abde89fc79bbaf69432b14f18d1.tar.xz
glibc-2ca285b098890abde89fc79bbaf69432b14f18d1.zip
[BZ #9733]
	* elf/dl-load.c (_dl_map_object_from_fd): Only call audit hooks
	if we are not loading a new audit library.
	* elf/dl-reloc (_dl_relocate_object): Third parameter is now a bitmask.
	Only use profiling trampoline for auditing if we are not relocating
	an audit library.
	* elf/dl-open.c (dl_open_worker): Adjust _dl_relocate_object call.
	* elf/rtld.c: Likewise.
	* sysdeps/generic/ldsodefs.h: Adjust _dl_relocate_object prototype.
Diffstat (limited to 'elf/dl-load.c')
-rw-r--r--elf/dl-load.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/elf/dl-load.c b/elf/dl-load.c
index c77c259156..0deb51e445 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -941,7 +941,8 @@ _dl_map_object_from_fd (const char *name, int fd, struct filebuf *fbp,
     {
 #ifdef SHARED
       /* Auditing checkpoint: we are going to add new objects.  */
-      if (__builtin_expect (GLRO(dl_naudit) > 0, 0))
+      if ((mode & __RTLD_AUDIT) == 0
+	  && __builtin_expect (GLRO(dl_naudit) > 0, 0))
 	{
 	  struct link_map *head = GL(dl_ns)[nsid]._ns_loaded;
 	  /* Do not call the functions for any auditing object.  */