diff options
author | Stefan Metzmacher <metze@samba.org> | 2017-05-12 12:38:59 +0200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2017-06-15 09:13:24 +0200 |
commit | 772b816c4488db36f48de98a88c3962aadc0f7ca (patch) | |
tree | 20c5fcb81d0830c15f5b1ec00d09d59266e8b810 /source4/ldap_server | |
parent | 489bc70c43e366d1a82485ce20360eebd45f1b10 (diff) | |
download | samba-772b816c4488db36f48de98a88c3962aadc0f7ca.tar.gz |
s4:ldap_server: avoid using talloc_reference()
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source4/ldap_server')
-rw-r--r-- | source4/ldap_server/ldap_bind.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/source4/ldap_server/ldap_bind.c b/source4/ldap_server/ldap_bind.c index 3ba7ea39111..71376429756 100644 --- a/source4/ldap_server/ldap_bind.c +++ b/source4/ldap_server/ldap_bind.c @@ -506,10 +506,6 @@ static NTSTATUS ldapsrv_BindSASL(struct ldapsrv_call *call) req->creds.SASL.mechanism, nt_errstr(status)); goto do_reply; } - - if (!talloc_reference(context->sasl, conn->gensec)) { - return NT_STATUS_NO_MEMORY; - } } status = gensec_session_info(conn->gensec, call, &session_info); @@ -541,11 +537,19 @@ static NTSTATUS ldapsrv_BindSASL(struct ldapsrv_call *call) } if (context != NULL) { + const void *ptr = NULL; + + ptr = talloc_reparent(conn, context->sasl, conn->gensec); + if (ptr == NULL) { + return NT_STATUS_NO_MEMORY; + } + call->postprocess_send = ldapsrv_sasl_postprocess_send; call->postprocess_recv = ldapsrv_sasl_postprocess_recv; call->postprocess_private = context; + } else { + talloc_unlink(conn, conn->gensec); } - talloc_unlink(conn, conn->gensec); conn->gensec = NULL; *resp->SASL.secblob = output; |