The branch, v3-5-test has been updated
       via  490986a Fix bug 7462 - Non-standard SA_RESETHAND is used in 
...lib/tevent/tevent_sig
      from  c69ab42 s3: Test for "__attribute__((destructor))" (cherry picked 
from commit 36e736871e28665ffcbbc4d0c87e1a2b60fcf0e0)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-5-test


- Log -----------------------------------------------------------------
commit 490986add9d5e80b24e90dbfe3e3ef23ce5584a0
Author: Jeremy Allison <[email protected]>
Date:   Tue Aug 2 20:49:46 2011 +0200

    Fix bug 7462 - Non-standard SA_RESETHAND is used in ...lib/tevent/tevent_sig
    
    Make SA_RESETHAND conditional on its existance.
    
    Autobuild-User: Jeremy Allison <[email protected]>
    Autobuild-Date: Mon Aug  1 22:03:45 CEST 2011 on sn-devel-104
    (cherry picked from commit 0c67efdd68b9808542c090b9fd9920e4e37d85d0)

-----------------------------------------------------------------------

Summary of changes:
 lib/replace/system/wait.h  |    4 ----
 lib/tevent/testsuite.c     |    2 ++
 lib/tevent/tevent_signal.c |    4 ++++
 3 files changed, 6 insertions(+), 4 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/replace/system/wait.h b/lib/replace/system/wait.h
index 79583ad..497f559 100644
--- a/lib/replace/system/wait.h
+++ b/lib/replace/system/wait.h
@@ -44,10 +44,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 f9aca91..41f7345 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 45f65cf..2e9f20a 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


-- 
Samba Shared Repository

Reply via email to