diff options
author | Stefan Metzmacher <metze@samba.org> | 2017-05-11 19:11:43 +0200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2017-06-15 09:13:23 +0200 |
commit | d4cf947c08e64f9a5f71fced0e75ca101c367ef8 (patch) | |
tree | 748d7745e76747b1623f3da2d7c1dae730136db8 /source4/ldap_server | |
parent | be8fff9dbcd781f24da7176dac37b7a37d8a7074 (diff) | |
download | samba-d4cf947c08e64f9a5f71fced0e75ca101c367ef8.tar.gz |
s4:ldap_server: always allocate resp->SASL.secblob
The code path with resp->SASL.secblob = NULL was completely untested
(and wrong) as ldapsrv_setup_gensec() is very unlikely to ever fail.
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 | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/source4/ldap_server/ldap_bind.c b/source4/ldap_server/ldap_bind.c index 3f2cd2be246..4913629cfcc 100644 --- a/source4/ldap_server/ldap_bind.c +++ b/source4/ldap_server/ldap_bind.c @@ -382,7 +382,12 @@ static NTSTATUS ldapsrv_BindSASL(struct ldapsrv_call *call) return NT_STATUS_NO_MEMORY; } resp = &reply->msg->r.BindResponse; - + /* Windows 2000 mmc doesn't like secblob == NULL and reports a decoding error */ + resp->SASL.secblob = talloc_zero(reply, DATA_BLOB); + if (resp->SASL.secblob == NULL) { + return NT_STATUS_NO_MEMORY; + } + conn = call->conn; /* @@ -416,12 +421,7 @@ static NTSTATUS ldapsrv_BindSASL(struct ldapsrv_call *call) status = gensec_update_ev(conn->gensec, reply, conn->connection->event.ctx, input, &output); - /* Windows 2000 mmc doesn't like secblob == NULL and reports a decoding error */ - resp->SASL.secblob = talloc(reply, DATA_BLOB); - NT_STATUS_HAVE_NO_MEMORY(resp->SASL.secblob); *resp->SASL.secblob = output; - } else { - resp->SASL.secblob = NULL; } if (NT_STATUS_EQUAL(NT_STATUS_MORE_PROCESSING_REQUIRED, status)) { |