about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2017-06-19 14:44:33 +0200
committerFlorian Weimer <fweimer@redhat.com>2017-06-19 23:11:57 +0200
commit37e9dc814636915afb88d0779e5e897e90e7b8c0 (patch)
tree5c7cdc61525effc406d27baa24102fcdf9e6283d
parent81b82fb966ffbd94353f793ad17116c6088dedd9 (diff)
downloadglibc-37e9dc814636915afb88d0779e5e897e90e7b8c0.tar.gz
glibc-37e9dc814636915afb88d0779e5e897e90e7b8c0.tar.xz
glibc-37e9dc814636915afb88d0779e5e897e90e7b8c0.zip
DCIGETTEXT: Do not make copy of localename
-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