From f37c3c4403298a3a9ab8b0c191893e09e06c180e Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Sat, 5 Oct 2013 12:34:13 +0200 Subject: [PATCH] Let _citrus_mapper_close() unlock cm_lock before calling mapper_close() mapper_close() may call _citrus_mapper_close() again in which case an already locked cm_lock would cause a deadlock. mapper_close() doesn't seems to require the lock an is already called without locking in other places. --- lib/libc/iconv/citrus_mapper.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/libc/iconv/citrus_mapper.c b/lib/libc/iconv/citrus_mapper.c index b1ee8fb..43fa4b0 100644 --- a/lib/libc/iconv/citrus_mapper.c +++ b/lib/libc/iconv/citrus_mapper.c @@ -381,7 +381,9 @@ _citrus_mapper_close(struct _citrus_mapper *cm) _CITRUS_HASH_REMOVE(cm, cm_entry); free(cm->cm_key); } + UNLOCK(&cm_lock); mapper_close(cm); + return; quit: UNLOCK(&cm_lock); } -- 1.8.4