about summary refs log tree commit diff
path: root/iconv/gconv_dl.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-11-06 01:58:35 +0000
committerUlrich Drepper <drepper@redhat.com>2002-11-06 01:58:35 +0000
commitc7709dbb33dd9def8661ef53e68f5d6fb2c4ed98 (patch)
treed2d4b4fb9c306595feb80c18da492c4d8933e664 /iconv/gconv_dl.c
parente791bd95a530740a79b2b383075ddfda68663921 (diff)
downloadglibc-c7709dbb33dd9def8661ef53e68f5d6fb2c4ed98.tar.gz
glibc-c7709dbb33dd9def8661ef53e68f5d6fb2c4ed98.tar.xz
glibc-c7709dbb33dd9def8661ef53e68f5d6fb2c4ed98.zip
(do_release_all): Call __libc_dlclose as many times as we opened the module.
Diffstat (limited to 'iconv/gconv_dl.c')
-rw-r--r--iconv/gconv_dl.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/iconv/gconv_dl.c b/iconv/gconv_dl.c
index cc7627aba2..0bf6129e73 100644
--- a/iconv/gconv_dl.c
+++ b/iconv/gconv_dl.c
@@ -198,7 +198,9 @@ do_release_all (void *nodep)
 
   /* Unload the shared object.  */
   if (obj->handle != NULL)
-    __libc_dlclose (obj->handle);
+    do
+      __libc_dlclose (obj->handle);
+    while (--obj->counter > 0);
 
   free (obj);
 }