From: Stefan Metzmacher Date: Fri, 4 Feb 2011 11:29:42 +0000 (+0100) Subject: s3:winbindd: fix segfaults on addrchange errors and make DEBUG() statements more... X-Git-Url: http://git.samba.org/?p=obnox%2Fsamba-ctdb.git;a=commitdiff_plain;h=e5b8a37d2480bbdbe502ea377d35b2480e91ff53 s3:winbindd: fix segfaults on addrchange errors and make DEBUG() statements more usefull metze --- diff --git a/source3/winbindd/winbindd.c b/source3/winbindd/winbindd.c index acf5e9d975..bee2a212e2 100644 --- a/source3/winbindd/winbindd.c +++ b/source3/winbindd/winbindd.c @@ -1177,8 +1177,9 @@ static void winbindd_init_addrchange(TALLOC_CTX *mem_ctx, } req = addrchange_send(state, ev, state->ctx); if (req == NULL) { - DEBUG(10, ("addrchange_send failed\n")); + DEBUG(0, ("addrchange_send failed\n")); TALLOC_FREE(state); + return; } tevent_req_set_callback(req, winbindd_addr_changed, state); } @@ -1197,6 +1198,7 @@ static void winbindd_addr_changed(struct tevent_req *req) DEBUG(10, ("addrchange_recv failed: %s, stop listening\n", nt_errstr(status))); TALLOC_FREE(state); + return; } if (type == ADDRCHANGE_DEL) { char addrstr[INET6_ADDRSTRLEN]; @@ -1212,14 +1214,15 @@ static void winbindd_addr_changed(struct tevent_req *req) status = messaging_send(state->msg_ctx, procid_self(), MSG_WINBIND_IP_DROPPED, &blob); if (!NT_STATUS_IS_OK(status)) { - DEBUG(10, ("messaging_send failed: %s\n", + DEBUG(10, ("messaging_send failed: %s - ignoring\n", nt_errstr(status))); } } req = addrchange_send(state, state->ev, state->ctx); if (req == NULL) { - DEBUG(10, ("addrchange_send failed\n")); + DEBUG(0, ("addrchange_send failed\n")); TALLOC_FREE(state); + return; } tevent_req_set_callback(req, winbindd_addr_changed, state); }