summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/ldap_server/ldap_bind.c12
-rw-r--r--source4/libcli/ldap/ldap.c4
2 files changed, 4 insertions, 12 deletions
diff --git a/source4/ldap_server/ldap_bind.c b/source4/ldap_server/ldap_bind.c
index 3d5df58e21..c0d3e67ff2 100644
--- a/source4/ldap_server/ldap_bind.c
+++ b/source4/ldap_server/ldap_bind.c
@@ -185,14 +185,10 @@ static NTSTATUS ldapsrv_BindSASL(struct ldapsrv_call *call)
status = gensec_update(conn->gensec, reply,
input, &output);
- /* TODO: gensec should really handle the difference between NULL and length=0 better! */
- if (output.data) {
- resp->SASL.secblob = talloc(reply, DATA_BLOB);
- NT_STATUS_HAVE_NO_MEMORY(resp->SASL.secblob);
- *resp->SASL.secblob = output;
- } else {
- resp->SASL.secblob = NULL;
- }
+ /* 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;
}
diff --git a/source4/libcli/ldap/ldap.c b/source4/libcli/ldap/ldap.c
index bdcea0962d..5a7174b41d 100644
--- a/source4/libcli/ldap/ldap.c
+++ b/source4/libcli/ldap/ldap.c
@@ -237,10 +237,6 @@ BOOL ldap_encode(struct ldap_message *msg, DATA_BLOB *result, TALLOC_CTX *mem_ct
ldap_encode_response(&data, &r->response);
if (r->SASL.secblob) {
asn1_write_ContextSimple(&data, 7, r->SASL.secblob);
- } else {
- /* ugly but the windows 2000 mmc deturns decoding error without this */
- DATA_BLOB zero = data_blob(NULL, 0);
- asn1_write_ContextSimple(&data, 7, &zero);
}
asn1_pop_tag(&data);
break;