diff options
author | Jeremy Allison <jra@samba.org> | 2011-08-01 11:49:10 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2011-08-01 22:03:45 +0200 |
commit | 0c67efdd68b9808542c090b9fd9920e4e37d85d0 (patch) | |
tree | e3d1a5a37f072940692ef8182e5a763f260c8f94 | |
parent | 7585057a22beda5bac2b98c7488e994880927daf (diff) | |
download | samba-0c67efdd68b9808542c090b9fd9920e4e37d85d0.tar.gz samba-0c67efdd68b9808542c090b9fd9920e4e37d85d0.tar.bz2 samba-0c67efdd68b9808542c090b9fd9920e4e37d85d0.zip |
Fix bug 7462 - Non-standard SA_RESETHAND is used in ...lib/tevent/tevent_signal.c
Make SA_RESETHAND conditional on its existance.
Autobuild-User: Jeremy Allison <jra@samba.org>
Autobuild-Date: Mon Aug 1 22:03:45 CEST 2011 on sn-devel-104
-rw-r--r-- | lib/replace/system/wait.h | 4 | ||||
-rw-r--r-- | lib/tevent/testsuite.c | 2 | ||||
-rw-r--r-- | lib/tevent/tevent_signal.c | 4 |
3 files changed, 6 insertions, 4 deletions
diff --git a/lib/replace/system/wait.h b/lib/replace/system/wait.h index 41db1806a5..f0c3bdccab 100644 --- a/lib/replace/system/wait.h +++ b/lib/replace/system/wait.h @@ -40,10 +40,6 @@ #include <setjmp.h> #endif -#ifndef SA_RESETHAND -#define SA_RESETHAND SA_ONESHOT -#endif - #if !defined(HAVE_SIG_ATOMIC_T_TYPE) typedef int sig_atomic_t; #endif diff --git a/lib/tevent/testsuite.c b/lib/tevent/testsuite.c index 991e161733..1e2f25afb0 100644 --- a/lib/tevent/testsuite.c +++ b/lib/tevent/testsuite.c @@ -101,7 +101,9 @@ static bool test_event_context(struct torture_context *test, #ifdef SA_RESTART se1 = event_add_signal(ev_ctx, ev_ctx, SIGALRM, SA_RESTART, count_handler, &alarm_count); #endif +#ifdef SA_RESETHAND se2 = event_add_signal(ev_ctx, ev_ctx, SIGALRM, SA_RESETHAND, count_handler, &alarm_count); +#endif #ifdef SA_SIGINFO se3 = event_add_signal(ev_ctx, ev_ctx, SIGUSR1, SA_SIGINFO, count_handler, &info_count); #endif diff --git a/lib/tevent/tevent_signal.c b/lib/tevent/tevent_signal.c index dbab8a8ada..b7908593f0 100644 --- a/lib/tevent/tevent_signal.c +++ b/lib/tevent/tevent_signal.c @@ -355,16 +355,20 @@ int tevent_common_check_signal(struct tevent_context *ev) (void*)&sig_state->sig_info[i][ofs], se->private_data); } +#ifdef SA_RESETHAND if (se->sa_flags & SA_RESETHAND) { talloc_free(se); } +#endif continue; } #endif se->handler(ev, se, i, count, NULL, se->private_data); +#ifdef SA_RESETHAND if (se->sa_flags & SA_RESETHAND) { talloc_free(se); } +#endif } #ifdef SA_SIGINFO |