FreeBSD Bugzilla – Attachment 117152 Details for
Bug 159226
[libedit] [patch] libedit does not always restore its signal handler
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
libedit-multisignal.diff
libedit-multisignal.diff (text/plain), 685 bytes, created by
AIDA Shinra
on 2011-07-27 11:30:08 UTC
(
hide
)
Description:
libedit-multisignal.diff
Filename:
MIME Type:
Creator:
AIDA Shinra
Created:
2011-07-27 11:30:08 UTC
Size:
685 bytes
patch
obsolete
>--- /usr/src/lib/libedit/sig.c 2010-02-10 09:26:20.000000000 +0900 >+++ sig.c 2011-07-17 13:31:47.000000000 +0900 >@@ -94,9 +94,18 @@ > if (signo == sighdl[i]) > break; > >- (void) signal(signo, sel->el_signal[i]); >+ if (sel->el_signal[i] != SIG_IGN && signo != SIGCONT) { >+ /* Deliver the signal to my original handler */ >+ (void) signal(signo, sel->el_signal[i]); >+ (void) kill(getpid(), signo); >+ (void) sigfillset(&nset); >+ (void) sigdelset(&nset, signo); >+ (void) sigdelset(&nset, SIGCONT); >+ /* delever and maybe stop here */ >+ (void) sigsuspend(&nset); >+ (void) signal(signo, sig_handler); >+ } > (void) sigprocmask(SIG_SETMASK, &oset, NULL); >- (void) kill(0, signo); > }
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 159226
: 117152