summary refs log tree commit diff
path: root/elf/dl-fini.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-11-06 04:49:03 +0000
committerUlrich Drepper <drepper@redhat.com>2002-11-06 04:49:03 +0000
commita2d80f9ade190429c6c72f9680529c57cdd8f427 (patch)
tree2a86ae82e5acb32cd4dd7c21716ba732a9419746 /elf/dl-fini.c
parent9a0a9895169517cd5eec26f0afcf26a8900a2bc3 (diff)
downloadglibc-a2d80f9ade190429c6c72f9680529c57cdd8f427.tar.gz
glibc-a2d80f9ade190429c6c72f9680529c57cdd8f427.tar.xz
glibc-a2d80f9ade190429c6c72f9680529c57cdd8f427.zip
Update.
	* elf/dl-fini.c (_dl_fini): Correct the increment of l_opencount
	which happens at the beginning so that we can unload modules in
	__libc_freeres.
Diffstat (limited to 'elf/dl-fini.c')
-rw-r--r--elf/dl-fini.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/elf/dl-fini.c b/elf/dl-fini.c
index 4e2e66e841..e7a00e513e 100644
--- a/elf/dl-fini.c
+++ b/elf/dl-fini.c
@@ -169,6 +169,9 @@ _dl_fini (void)
 	  if (l->l_info[DT_FINI] != NULL)
 	    ((fini_t) DL_DT_FINI_ADDRESS (l, l->l_addr + l->l_info[DT_FINI]->d_un.d_ptr)) ();
 	}
+
+      /* Correct the previous increment.  */
+      --l->l_opencount;
     }
 
   if (__builtin_expect (GL(dl_debug_mask) & DL_DEBUG_STATISTICS, 0))