summaryrefslogtreecommitdiffstats
path: root/source/rpc_server
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2006-03-25 11:40:16 +0000
committerAndrew Bartlett <abartlet@samba.org>2006-03-25 11:40:16 +0000
commit825b8d47be07f6efa7dd9e054c2878bbbeddc63f (patch)
treef70a7f06acfeb43f832cb42d749ad754c096c05a /source/rpc_server
parent2fe8767f9a4576d023425a8781ace797e0b81915 (diff)
downloadsamba-825b8d47be07f6efa7dd9e054c2878bbbeddc63f.tar.gz
samba-825b8d47be07f6efa7dd9e054c2878bbbeddc63f.tar.xz
samba-825b8d47be07f6efa7dd9e054c2878bbbeddc63f.zip
r14715: Correct the definition of the DCE/RPC bind_nak, per the OpenGroup spec.
This allows us to correctly parse the bind_nak from NT4, when we use an invalid auth type (the unsupported SPNEGO).. Andrew Bartlett
Diffstat (limited to 'source/rpc_server')
-rw-r--r--source/rpc_server/dcerpc_server.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/source/rpc_server/dcerpc_server.c b/source/rpc_server/dcerpc_server.c
index 37026f901f5..4c39333e861 100644
--- a/source/rpc_server/dcerpc_server.c
+++ b/source/rpc_server/dcerpc_server.c
@@ -433,7 +433,9 @@ static NTSTATUS dcesrv_bind_nak(struct dcesrv_call_state *call, uint32_t reason)
pkt.ptype = DCERPC_PKT_BIND_NAK;
pkt.pfc_flags = DCERPC_PFC_FLAG_FIRST | DCERPC_PFC_FLAG_LAST;
pkt.u.bind_nak.reject_reason = reason;
- pkt.u.bind_nak.num_versions = 0;
+ if (pkt.u.bind_nak.reject_reason == DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED) {
+ pkt.u.bind_nak.versions.v.num_versions = 0;
+ }
rep = talloc(call, struct data_blob_list_item);
if (!rep) {
@@ -527,8 +529,7 @@ static NTSTATUS dcesrv_bind(struct dcesrv_call_state *call)
/* handle any authentication that is being requested */
if (!dcesrv_auth_bind(call)) {
- /* TODO: work out the right reject code */
- return dcesrv_bind_nak(call, 0);
+ return dcesrv_bind_nak(call, DCERPC_BIND_REASON_INVALID_AUTH_TYPE);
}
/* setup a bind_ack */