FreeBSD Bugzilla – Attachment 86600 Details for
Bug 123062
C++ exception handling can loop during stacking unwinding in multithreaded programs
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
file.diff
file.diff (text/plain), 1.70 KB, created by
Andy Newman
on 2008-04-25 02:10:02 UTC
(
hide
)
Description:
file.diff
Filename:
MIME Type:
Creator:
Andy Newman
Created:
2008-04-25 02:10:02 UTC
Size:
1.70 KB
patch
obsolete
>Index: rtld.c >=================================================================== >RCS file: /home/ncvs/src/libexec/rtld-elf/rtld.c,v >retrieving revision 1.124 >diff -u -r1.124 rtld.c >--- rtld.c 17 May 2007 18:00:27 -0000 1.124 >+++ rtld.c 25 Apr 2008 00:34:54 -0000 >@@ -2100,7 +2100,7 @@ > const Obj_Entry *obj; > int error, lockstate; > >- lockstate = rlock_acquire(rtld_bind_lock); >+ lockstate = wlock_acquire(rtld_phdr_lock); > > error = 0; > >@@ -2119,7 +2119,7 @@ > break; > > } >- rlock_release(rtld_bind_lock, lockstate); >+ wlock_release(rtld_phdr_lock, lockstate); > > return (error); > } >Index: rtld_lock.c >=================================================================== >RCS file: /home/ncvs/src/libexec/rtld-elf/rtld_lock.c,v >retrieving revision 1.4 >diff -u -r1.4 rtld_lock.c >--- rtld_lock.c 3 Apr 2007 18:28:13 -0000 1.4 >+++ rtld_lock.c 24 Apr 2008 13:55:04 -0000 >@@ -171,7 +171,7 @@ > lockinfo.thread_clr_flag(mask); > } > >-#define RTLD_LOCK_CNT 2 >+#define RTLD_LOCK_CNT 3 > struct rtld_lock { > void *handle; > int mask; >@@ -179,6 +179,7 @@ > > rtld_lock_t rtld_bind_lock = &rtld_locks[0]; > rtld_lock_t rtld_libc_lock = &rtld_locks[1]; >+rtld_lock_t rtld_phdr_lock = &rtld_locks[2]; > > int > rlock_acquire(rtld_lock_t lock) >Index: rtld_lock.h >=================================================================== >RCS file: /home/ncvs/src/libexec/rtld-elf/rtld_lock.h,v >retrieving revision 1.2 >diff -u -r1.2 rtld_lock.h >--- rtld_lock.h 19 Jun 2003 02:39:37 -0000 1.2 >+++ rtld_lock.h 24 Apr 2008 13:55:16 -0000 >@@ -52,6 +52,7 @@ > > extern rtld_lock_t rtld_bind_lock; > extern rtld_lock_t rtld_libc_lock; >+extern rtld_lock_t rtld_phdr_lock; > > int rlock_acquire(rtld_lock_t); > int wlock_acquire(rtld_lock_t);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 123062
: 86600