소스 검색

dlclose fix

Patch is from Timo Teras

Refs.:
 http://lists.uclibc.org/pipermail/uclibc/2012-October/047059.html
 http://git.alpinelinux.org/cgit/aports/tree/main/libc0.9.32/uclibc-dlclose-fix.patch
Waldemar Brodkorb 8 년 전
부모
커밋
cc04ab27ba
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      ldso/libdl/libdl.c

+ 2 - 2
ldso/libdl/libdl.c

@@ -964,8 +964,8 @@ static int do_dlclose(void *vhandle, int need_fini)
 
 					dtv_t *dtv = THREAD_DTV ();
 
-					_dl_assert(!(dtv[tls_lmap->l_tls_modid].pointer.is_static));
-					if (dtv[tls_lmap->l_tls_modid].pointer.val != TLS_DTV_UNALLOCATED) {
+					if (!(dtv[tls_lmap->l_tls_modid].pointer.is_static) &&
+					    dtv[tls_lmap->l_tls_modid].pointer.val != TLS_DTV_UNALLOCATED) {
 						/* Note that free is called for NULL is well.  We
 						deallocate even if it is this dtv entry we are
 						supposed to load.  The reason is that we call