1
0
mirror of https://github.com/samba-team/samba.git synced 2025-09-18 09:44:19 +03:00

dcerpc.idl: fix dcerpc_bind_nack definition

The version array is always present.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
Stefan Metzmacher
2014-03-26 22:42:19 +01:00
committed by Andrew Bartlett
parent 97302100d0
commit f73ef3028c
2 changed files with 12 additions and 13 deletions

View File

@@ -125,19 +125,15 @@ interface dcerpc
DCERPC_BIND_NAK_REASON_INVALID_AUTH_TYPE;
typedef struct {
uint32 num_versions;
uint32 versions[num_versions];
} dcerpc_bind_nak_versions;
typedef [nodiscriminant] union {
[case(DCERPC_BIND_NAK_REASON_PROTOCOL_VERSION_NOT_SUPPORTED)]
dcerpc_bind_nak_versions v;
[default] ;
} dcerpc_bind_nak_versions_ctr;
uint8 rpc_vers; /* RPC version */
uint8 rpc_vers_minor; /* Minor version */
} dcerpc_bind_nak_version;
typedef struct {
dcerpc_bind_nak_reason reject_reason;
[switch_is(reject_reason)] dcerpc_bind_nak_versions_ctr versions;
uint8 num_versions;
dcerpc_bind_nak_version versions[num_versions];
[flag(NDR_REMAINING)] DATA_BLOB _pad;
} dcerpc_bind_nak;
const uint8 DCERPC_RESPONSE_LENGTH = 24;

View File

@@ -457,6 +457,7 @@ static void dcesrv_call_set_list(struct dcesrv_call_state *call,
static NTSTATUS dcesrv_bind_nak(struct dcesrv_call_state *call, uint32_t reason)
{
struct ncacn_packet pkt;
struct dcerpc_bind_nak_version version;
struct data_blob_list_item *rep;
NTSTATUS status;
@@ -467,9 +468,11 @@ 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;
if (pkt.u.bind_nak.reject_reason == DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED) {
pkt.u.bind_nak.versions.v.num_versions = 0;
}
version.rpc_vers = 5;
version.rpc_vers_minor = 0;
pkt.u.bind_nak.num_versions = 1;
pkt.u.bind_nak.versions = &version;
pkt.u.bind_nak._pad = data_blob_null;
rep = talloc(call, struct data_blob_list_item);
if (!rep) {