[SCM] Samba Shared Repository - branch master updated - tevent-0-9-8-590-g00e378f

Jeremy Allison jra at samba.org
Fri Oct 9 11:54:58 MDT 2009


On Wed, Sep 30, 2009 at 01:06:15PM +0200, Stefan (metze) Metzmacher wrote:
> Volker Lendecke schrieb:
> > On Wed, Sep 30, 2009 at 12:51:59PM +0200, Stefan (metze) Metzmacher wrote:
> >> BTW: in master I need this
> >> http://gitweb.samba.org/?p=metze/samba/wip.git;a=commitdiff;h=19dec031c7c8d5f4b646ff5f450c16b9f98f9dac
> >> diff --git a/lib/tevent/tevent_signal.c b/lib/tevent/tevent_signal.c
> >> index d3325b6..46bcfca 100644 (file)
> >> --- a/lib/tevent/tevent_signal.c
> >> +++ b/lib/tevent/tevent_signal.c
> >> @@ -94,6 +94,8 @@ static void tevent_common_signal_handler(int signum)
> >>         for (sl = sig_state->sig_handlers[signum]; sl; sl = sl->next) {
> >>                 if (sl->se->event_ctx != ev) {
> >>                         ev = sl->se->event_ctx;
> >> +                       if (!ev) continue;
> >> +                       if (!ev->pipe_fds) continue;
> >>                         /* doesn't matter if this pipe overflows */
> >>                         res = write(ev->pipe_fds[1], &c, 1);
> >>                 }
> >>
> >> Otherwise winbindd childs crash after the fork.
> > 
> > Please talk to rusty about this one. I thought I had fixed
> > it, but then he said my fix is wrong. I did not have enough
> > time to look at that yet.
> 
> No problem, it seems to work in v3-4-test, it's only master that has
> this problem...

Actually I think I've fixed this with commit:

295fec2b46be2ee492b1fbe7a51d95de8ddce5ba

diff --git a/lib/tevent/tevent_signal.c b/lib/tevent/tevent_signal.c
index d3325b6..ab170a6 100644
--- a/lib/tevent/tevent_signal.c
+++ b/lib/tevent/tevent_signal.c
@@ -92,7 +92,7 @@ static void tevent_common_signal_handler(int signum)
 
        /* Write to each unique event context. */
        for (sl = sig_state->sig_handlers[signum]; sl; sl = sl->next) {
-               if (sl->se->event_ctx != ev) {
+               if (sl->se->event_ctx && sl->se->event_ctx != ev) {
                        ev = sl->se->event_ctx;
                        /* doesn't matter if this pipe overflows */
                        res = write(ev->pipe_fds[1], &c, 1);

I'm pretty sure this needs to be in 3.4.3. I'll log
a bug and get it added.

Jeremy.


More information about the samba-technical mailing list