The Samba-Bugzilla – Attachment 12585 Details for
Bug 12381
cldap netlogon send fails when IPv6 disabled but DNS returns IPv6 addresses.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
git-am fix for master.
0001-s3-cldap-cldap_multi_netlogon_send-fails-with-one-ba.patch (text/plain), 2.23 KB, created by
Jeremy Allison
on 2016-10-17 18:38:45 UTC
(
hide
)
Description:
git-am fix for master.
Filename:
MIME Type:
Creator:
Jeremy Allison
Created:
2016-10-17 18:38:45 UTC
Size:
2.23 KB
patch
obsolete
>From 923bcce52f7b81733c7c93f7874c99cc1adf6324 Mon Sep 17 00:00:00 2001 >From: Jeremy Allison <jra@samba.org> >Date: Mon, 17 Oct 2016 10:07:23 -0700 >Subject: [PATCH] s3: cldap: cldap_multi_netlogon_send() fails with one bad > IPv6 address. > >Analysis by: Rebecca Gellman <rebecca@starfleet-net.co.uk> > >Ignore cldap_socket_init() failure when sending >multiple cldap netlogon requests. Allow cldap_netlogon_send() >to catch the bad address and correctly return through a >tevent subreq. > >Make sure cldap_search_send() copes with cldap parameter == NULL. > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=12381 > >Signed-off-by: Jeremy Allison <jra@samba.org> >--- > libcli/cldap/cldap.c | 5 +++++ > source3/libads/cldap.c | 17 +++++++++++++++-- > 2 files changed, 20 insertions(+), 2 deletions(-) > >diff --git a/libcli/cldap/cldap.c b/libcli/cldap/cldap.c >index c5977cc..87f82b9 100644 >--- a/libcli/cldap/cldap.c >+++ b/libcli/cldap/cldap.c >@@ -585,6 +585,11 @@ struct tevent_req *cldap_search_send(TALLOC_CTX *mem_ctx, > > talloc_set_destructor(state, cldap_search_state_destructor); > >+ if (state->caller.cldap == NULL) { >+ tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER); >+ goto post; >+ } >+ > if (io->in.dest_address) { > if (cldap->connected) { > tevent_req_nterror(req, NT_STATUS_PIPE_CONNECTED); >diff --git a/source3/libads/cldap.c b/source3/libads/cldap.c >index bd77943..586a04a 100644 >--- a/source3/libads/cldap.c >+++ b/source3/libads/cldap.c >@@ -117,8 +117,21 @@ struct tevent_req *cldap_multi_netlogon_send( > NULL, /* local_addr */ > state->servers[i], > &state->cldap[i]); >- if (tevent_req_nterror(req, status)) { >- return tevent_req_post(req, ev); >+ if (!NT_STATUS_IS_OK(status)) { >+ /* >+ * Don't error out all sends just >+ * because one cldap_socket_init() failed. >+ * Log it here, and the cldap_netlogon_send() >+ * will catch it (with in.dest_address == NULL) >+ * and correctly error out in >+ * cldap_multi_netlogon_done(). This still allows >+ * the other requests to be concurrently sent. >+ */ >+ DBG_NOTICE("cldap_socket_init failed for %s " >+ " error %s\n", >+ tsocket_address_string(state->servers[i], >+ req), >+ nt_errstr(status)); > } > > state->ios[i].in.dest_address = NULL; >-- >2.8.0.rc3.226.g39d4020 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 12381
:
12584
|
12585
|
12591