summaryrefslogtreecommitdiffstats
path: root/lib/libpthread/thread
diff options
context:
space:
mode:
authordeischen <deischen@FreeBSD.org>2000-10-22 18:35:11 +0000
committerdeischen <deischen@FreeBSD.org>2000-10-22 18:35:11 +0000
commitfba698949b56b642423c350ac9c0e39f6a35d9b9 (patch)
tree02aa60b665823b5aef074b4df9e3c4a3dc384686 /lib/libpthread/thread
parent7fb21cfd3902c8f5069b93bb100a2a259de084d5 (diff)
downloadFreeBSD-src-fba698949b56b642423c350ac9c0e39f6a35d9b9.zip
FreeBSD-src-fba698949b56b642423c350ac9c0e39f6a35d9b9.tar.gz
We use ___setjmp (non-signal saving) to setup a signal frame. When
adding a signal frame to a thread, be sure to label the context correctly so we don't restore an uninitialized process mask. Reported by: kimc@W8HD.ORG and Andrey Rouskol <anry@sovintel.ru>
Diffstat (limited to 'lib/libpthread/thread')
-rw-r--r--lib/libpthread/thread/thr_sig.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/libpthread/thread/thr_sig.c b/lib/libpthread/thread/thr_sig.c
index 8a9aadf..b2b8c92 100644
--- a/lib/libpthread/thread/thr_sig.c
+++ b/lib/libpthread/thread/thr_sig.c
@@ -1046,7 +1046,7 @@ thread_sigframe_add(pthread_t thread, int sig)
(struct pthread_signal_frame *) stackp;
thread->curframe = thread->sigframes[thread->sigframe_count];
thread->curframe->stackp = stackp;
- thread->curframe->ctxtype = CTX_JB;
+ thread->curframe->ctxtype = CTX_JB_NOSIG;
thread->curframe->longjmp_val = 1;
thread->curframe->signo = sig;
OpenPOWER on IntegriCloud