about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2007-07-07 17:21:49 +0000
committerJakub Jelinek <jakub@redhat.com>2007-07-07 17:21:49 +0000
commit5daa0615659c5651d48e39ba7c17db769bbe10d4 (patch)
tree4d2e8582e82da8b39408b57243005346ffc705e7
parent0906c26cc3ec08b2515c5efa414a5f1d78c674b1 (diff)
downloadglibc-5daa0615659c5651d48e39ba7c17db769bbe10d4.tar.gz
glibc-5daa0615659c5651d48e39ba7c17db769bbe10d4.tar.xz
glibc-5daa0615659c5651d48e39ba7c17db769bbe10d4.zip
* elf/rtld.c (dl_main): Don't call init_tls more than once.
-rw-r--r--ChangeLog4
-rw-r--r--elf/rtld.c10
2 files changed, 9 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index ba9f84629e..96f9bf071b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2007-06-18  Jakub Jelinek  <jakub@redhat.com>
+
+	* elf/rtld.c (dl_main): Don't call init_tls more than once.
+
 2007-06-19  Ulrich Drepper  <drepper@redhat.com>
 
 	* elf/dl-close.c (free_mem): Free _dl_scope_free_list.
diff --git a/elf/rtld.c b/elf/rtld.c
index c57ef17e13..7612a69324 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -1400,6 +1400,11 @@ of this helper program; chances are you did not intend to run this program.\n\
       /* Iterate over all entries in the list.  The order is important.  */
       struct audit_ifaces *last_audit = NULL;
       struct audit_list *al = audit_list->next;
+
+      /* Since we start using the auditing DSOs right away we need to
+	 initialize the data structures now.  */
+      tcbp = init_tls ();
+
       do
 	{
 	  int tls_idx = GL(dl_tls_max_dtv_idx);
@@ -1409,11 +1414,6 @@ of this helper program; chances are you did not intend to run this program.\n\
 	     always allocate the static block, we never defer it even if
 	     no DF_STATIC_TLS bit is set.  The reason is that we know
 	     glibc will use the static model.  */
-
-	  /* Since we start using the auditing DSOs right away we need to
-	     initialize the data structures now.  */
-	  tcbp = init_tls ();
-
 	  struct dlmopen_args dlmargs;
 	  dlmargs.fname = al->name;
 	  dlmargs.map = NULL;