summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-09-05 20:25:10 +0000
committerRoland McGrath <roland@gnu.org>2002-09-05 20:25:10 +0000
commit51387e0b86b1ebb066206e0fdbd3dc3c0afec236 (patch)
tree55dde8bd95ed1d6f1abd3bc08572d6d465345e9e
parenta1e56cd10ab85871b744cffddee4f8b543304123 (diff)
downloadglibc-51387e0b86b1ebb066206e0fdbd3dc3c0afec236.tar.gz
glibc-51387e0b86b1ebb066206e0fdbd3dc3c0afec236.tar.xz
glibc-51387e0b86b1ebb066206e0fdbd3dc3c0afec236.zip
2002-09-05 Jakub Jelinek <jakub@redhat.com>
        * wcsmbs/wcsmbsload.c (__wcsmbs_load_conv): Unlock and return in
        case of failure.
-rw-r--r--ChangeLog5
-rw-r--r--wcsmbs/wcsmbsload.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index ede97d4b9d..1f66d5ceab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2002-09-05  Jakub Jelinek  <jakub@redhat.com>
+
+        * wcsmbs/wcsmbsload.c (__wcsmbs_load_conv): Unlock and return in
+        case of failure.
+
 2002-09-04  Bruno Haible  <bruno@clisp.org>
 
 	* sysdeps/unix/sysv/linux/sigset-cvt-mask.h (sigset_set_old_mask,
diff --git a/wcsmbs/wcsmbsload.c b/wcsmbs/wcsmbsload.c
index 539b02ae59..b2ee83459b 100644
--- a/wcsmbs/wcsmbsload.c
+++ b/wcsmbs/wcsmbsload.c
@@ -169,6 +169,8 @@ __wcsmbs_load_conv (struct locale_data *new_category)
 	{
 	failed:
 	  new_category->private.ctype = &__wcsmbs_gconv_fcts_c;
+	  __libc_lock_unlock (__libc_setlocale_lock);
+	  return;
 	}
 
       /* Get name of charset of the locale.  */