about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--intl/dcigettext.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 5c4815eb43..d4aac40eab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2017-06-19  Florian Weimer  <fweimer@redhat.com>
 
+	* intl/dcigettext.c (DCIGETTEXT): Do not make copy of localename.
+	It cannot change while __libc_setlocale_lock is acquired.
+
+2017-06-19  Florian Weimer  <fweimer@redhat.com>
+
 	* elf/rtld.c (audit_list_string): New variable.
 	(audit_list): Update comment.
 	(struct audit_list_iter): Define.
diff --git a/intl/dcigettext.c b/intl/dcigettext.c
index 3843b7cbdf..d97746cae5 100644
--- a/intl/dcigettext.c
+++ b/intl/dcigettext.c
@@ -551,7 +551,7 @@ DCIGETTEXT (const char *domainname, const char *msgid1, const char *msgid2,
 #ifdef HAVE_PER_THREAD_LOCALE
 # ifndef IN_LIBGLOCALE
 #  ifdef _LIBC
-  localename = strdupa (__current_locale_name (category));
+  localename = __current_locale_name (category);
 #  else
   categoryname = category_to_name (category);
 #   define CATEGORYNAME_INITIALIZED