diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | plugins/omprog/omprog.c | 6 |
2 files changed, 9 insertions, 1 deletions
@@ -105,6 +105,10 @@ Version 7.5.0 [devel] 2013-06-11 Thanks to Axel Rau for the patch. --------------------------------------------------------------------------- Version 7.4.5 [v7.4-stable] 2013-09-?? +- bugfix: omprog blocked signals to executed programs + The made it impossible to send signals to programs executed via + omprog. + Thanks to Risto Vaarandi for the analysis and a patch. - bugfix: doc: imuxsock legacy param $SystemLogSocketParseTrusted was misspelled Thanks to David Lang for alerting us diff --git a/plugins/omprog/omprog.c b/plugins/omprog/omprog.c index 940ef8d7..5f3b112f 100644 --- a/plugins/omprog/omprog.c +++ b/plugins/omprog/omprog.c @@ -131,6 +131,8 @@ static void execBinary(instanceData *pData, int fdStdin) { int i, iRet; struct sigaction sigAct; + sigset_t set; + char *newargv[] = { NULL }; char *newenviron[] = { NULL }; assert(pData != NULL); @@ -154,10 +156,12 @@ static void execBinary(instanceData *pData, int fdStdin) /* reset signal handlers to default */ memset(&sigAct, 0, sizeof(sigAct)); - sigfillset(&sigAct.sa_mask); + sigemptyset(&sigAct.sa_mask); sigAct.sa_handler = SIG_DFL; for(i = 1 ; i < NSIG ; ++i) sigaction(i, &sigAct, NULL); + sigemptyset(&set); + sigprocmask(SIG_SETMASK, &set, NULL); alarm(0); |