diff options
author | deischen <deischen@FreeBSD.org> | 2000-10-22 18:35:11 +0000 |
---|---|---|
committer | deischen <deischen@FreeBSD.org> | 2000-10-22 18:35:11 +0000 |
commit | fba698949b56b642423c350ac9c0e39f6a35d9b9 (patch) | |
tree | 02aa60b665823b5aef074b4df9e3c4a3dc384686 /lib | |
parent | 7fb21cfd3902c8f5069b93bb100a2a259de084d5 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | lib/libc_r/uthread/uthread_sig.c | 2 | ||||
-rw-r--r-- | lib/libkse/thread/thr_sig.c | 2 | ||||
-rw-r--r-- | lib/libpthread/thread/thr_sig.c | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/lib/libc_r/uthread/uthread_sig.c b/lib/libc_r/uthread/uthread_sig.c index 8a9aadf..b2b8c92 100644 --- a/lib/libc_r/uthread/uthread_sig.c +++ b/lib/libc_r/uthread/uthread_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; diff --git a/lib/libkse/thread/thr_sig.c b/lib/libkse/thread/thr_sig.c index 8a9aadf..b2b8c92 100644 --- a/lib/libkse/thread/thr_sig.c +++ b/lib/libkse/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; 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; |