summary refs log tree commit diff
path: root/intl/loadmsgcat.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2007-09-24 16:09:09 +0000
committerUlrich Drepper <drepper@redhat.com>2007-09-24 16:09:09 +0000
commit408cfca0c4ec78358314d9fc7c36448d36eeb931 (patch)
treed0d72b0ff464969b671ab0d84cbe929d1d065f8c /intl/loadmsgcat.c
parenta389bcaa40376bc0fb1a0958d4d9e5dc2f794e5e (diff)
downloadglibc-408cfca0c4ec78358314d9fc7c36448d36eeb931.tar.gz
glibc-408cfca0c4ec78358314d9fc7c36448d36eeb931.tar.xz
glibc-408cfca0c4ec78358314d9fc7c36448d36eeb931.zip
[BZ #5058]
2007-09-24  Ulrich Drepper  <drepper@redhat.com>
	[BZ #5058]
	* intl/gettextP.h (struct loaded_domain): Add conversions_lock member.
	* intl/loadmsgcat.c (_nl_load_domain): Initialize conversions_lock.
	(_nl_unload_domain): Finalize conversions_lock.
	* intl/dcigettext.c (_nl_find_msg): Take conversions_lock before
	handling table of known conversions.

	* posix/regcomp.c (lookup_collation_sequence_value): Check that
Diffstat (limited to 'intl/loadmsgcat.c')
-rw-r--r--intl/loadmsgcat.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/intl/loadmsgcat.c b/intl/loadmsgcat.c
index 1c47475ec6..537fd6013c 100644
--- a/intl/loadmsgcat.c
+++ b/intl/loadmsgcat.c
@@ -1,5 +1,5 @@
 /* Load needed message catalogs.
-   Copyright (C) 1995-2005 Free Software Foundation, Inc.
+   Copyright (C) 1995-2005, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -1252,6 +1252,7 @@ _nl_load_domain (domain_file, domainbinding)
   /* No caches of converted translations so far.  */
   domain->conversions = NULL;
   domain->nconversions = 0;
+  __libc_rwlock_init (domain->conversions_lock);
 
   /* Get the header entry and look for a plural specification.  */
   nullentry = _nl_find_msg (domain_file, domainbinding, "", 0, &nullentrylen);
@@ -1290,6 +1291,7 @@ _nl_unload_domain (domain)
     }
   if (domain->conversions != NULL)
     free (domain->conversions);
+  __libc_rwlock_fini (domain->conversions_lock);
 
   if (domain->malloced)
     free (domain->malloced);