summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Kerihuel <j.kerihuel@openchange.org>2008-05-15 13:54:07 +0200
committerStefan Metzmacher <metze@samba.org>2008-05-16 08:54:27 +0200
commit25a82b8fc93ca01b7f142a680ad9a327e8cb8fa9 (patch)
tree500d6260d1d680b54bc414a7345f09bcd23bb961
parent8113bb07a8eaee2bce1290bff1f06856bc7c76e6 (diff)
downloadsamba-25a82b8fc93ca01b7f142a680ad9a327e8cb8fa9.tar.gz
samba-25a82b8fc93ca01b7f142a680ad9a327e8cb8fa9.tar.bz2
samba-25a82b8fc93ca01b7f142a680ad9a327e8cb8fa9.zip
This patch adds remaining padding bytes to the dcerpc_fault IDL structure and adds a const 4 bytes blob to pkt.u.fault.
Signed-off-by: Stefan Metzmacher <metze@samba.org> (This used to be commit 652b8c5f156b357e231057a5a0fbded88f4f9c5f)
-rw-r--r--source4/librpc/idl/dcerpc.idl1
-rw-r--r--source4/rpc_server/dcerpc_server.c4
2 files changed, 5 insertions, 0 deletions
diff --git a/source4/librpc/idl/dcerpc.idl b/source4/librpc/idl/dcerpc.idl
index b2c67542f5..e228d85c46 100644
--- a/source4/librpc/idl/dcerpc.idl
+++ b/source4/librpc/idl/dcerpc.idl
@@ -116,6 +116,7 @@ interface dcerpc
uint16 context_id;
uint8 cancel_count;
uint32 status;
+ [flag(NDR_REMAINING)] DATA_BLOB _pad;
} dcerpc_fault;
/* the auth types we know about */
diff --git a/source4/rpc_server/dcerpc_server.c b/source4/rpc_server/dcerpc_server.c
index 1962a97d5b..eb467709c9 100644
--- a/source4/rpc_server/dcerpc_server.c
+++ b/source4/rpc_server/dcerpc_server.c
@@ -445,6 +445,7 @@ static NTSTATUS dcesrv_fault(struct dcesrv_call_state *call, uint32_t fault_code
{
struct ncacn_packet pkt;
struct data_blob_list_item *rep;
+ uint8_t zeros[4];
NTSTATUS status;
/* setup a bind_ack */
@@ -458,6 +459,9 @@ static NTSTATUS dcesrv_fault(struct dcesrv_call_state *call, uint32_t fault_code
pkt.u.fault.cancel_count = 0;
pkt.u.fault.status = fault_code;
+ ZERO_STRUCT(zeros);
+ pkt.u.fault._pad = data_blob_const(zeros, sizeof(zeros));
+
rep = talloc(call, struct data_blob_list_item);
if (!rep) {
return NT_STATUS_NO_MEMORY;