diff options
-rw-r--r-- | source4/librpc/rpc/dcerpc.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/source4/librpc/rpc/dcerpc.c b/source4/librpc/rpc/dcerpc.c index 59aa9c6a8b..a04dbb1ea9 100644 --- a/source4/librpc/rpc/dcerpc.c +++ b/source4/librpc/rpc/dcerpc.c @@ -1158,6 +1158,14 @@ static NTSTATUS dcerpc_ndr_validate_in(struct dcerpc_connection *c, } pull->flags |= LIBNDR_FLAG_REF_ALLOC; + if (c->flags & DCERPC_PUSH_BIGENDIAN) { + pull->flags |= LIBNDR_FLAG_BIGENDIAN; + } + + if (c->flags & DCERPC_NDR64) { + pull->flags |= LIBNDR_FLAG_NDR64; + } + ndr_err = ndr_pull(pull, NDR_IN, st); if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { NTSTATUS status = ndr_map_error2ntstatus(ndr_err); @@ -1172,6 +1180,14 @@ static NTSTATUS dcerpc_ndr_validate_in(struct dcerpc_connection *c, return NT_STATUS_NO_MEMORY; } + if (c->flags & DCERPC_PUSH_BIGENDIAN) { + push->flags |= LIBNDR_FLAG_BIGENDIAN; + } + + if (c->flags & DCERPC_NDR64) { + push->flags |= LIBNDR_FLAG_NDR64; + } + ndr_err = ndr_push(push, NDR_IN, st); if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { NTSTATUS status = ndr_map_error2ntstatus(ndr_err); |