diff options
author | Stefan Metzmacher <metze@samba.org> | 2011-02-04 12:29:42 +0100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2011-02-04 15:04:57 +0100 |
commit | 902fbd91a19c414b61bc18ef24d7d84b30d37b1b (patch) | |
tree | 92cf2c2fd38b736315ae5683aa2ac99d725cb231 | |
parent | 17c01a5e900d77d622f3c33a440de739e64940e4 (diff) | |
download | samba-902fbd91a19c414b61bc18ef24d7d84b30d37b1b.tar.gz samba-902fbd91a19c414b61bc18ef24d7d84b30d37b1b.tar.bz2 samba-902fbd91a19c414b61bc18ef24d7d84b30d37b1b.zip |
s3:winbindd: fix segfaults on addrchange errors and make DEBUG() statements more usefull
metze
-rw-r--r-- | source3/winbindd/winbindd.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/source3/winbindd/winbindd.c b/source3/winbindd/winbindd.c index 701f7a098b..3a762316d2 100644 --- a/source3/winbindd/winbindd.c +++ b/source3/winbindd/winbindd.c @@ -1142,8 +1142,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); } @@ -1162,6 +1163,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]; @@ -1178,14 +1180,15 @@ static void winbindd_addr_changed(struct tevent_req *req) messaging_server_id(state->msg_ctx), 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); } |