summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2001-03-12 20:19:29 +0000
committerJeremy Allison <jra@samba.org>2001-03-12 20:19:29 +0000
commite23e341373ea4d7c76aeac9f0a8ff691d8b1b4d9 (patch)
tree5fac05759a082188c6d3484a71feee4cb06e08e7
parentabb5176cd62796e2699368b220c3e911fe6ea989 (diff)
downloadsamba-e23e341373ea4d7c76aeac9f0a8ff691d8b1b4d9.tar.gz
samba-e23e341373ea4d7c76aeac9f0a8ff691d8b1b4d9.tar.xz
samba-e23e341373ea4d7c76aeac9f0a8ff691d8b1b4d9.zip
Ok - we're now sending back policy handles to bigendian AS/U correctly.
Jeremy.
-rw-r--r--source/rpc_server/srv_pipe_hnd.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/source/rpc_server/srv_pipe_hnd.c b/source/rpc_server/srv_pipe_hnd.c
index 3049c3adb9b..ed1f9d36db5 100644
--- a/source/rpc_server/srv_pipe_hnd.c
+++ b/source/rpc_server/srv_pipe_hnd.c
@@ -569,8 +569,14 @@ static ssize_t process_complete_pdu(pipes_struct *p)
}
prs_init( &rpc_in, 0, p->mem_ctx, UNMARSHALL);
- /* Ensure we're using the corrent endianness. */
+
+ /*
+ * Ensure we're using the corrent endianness for both the
+ * RPC header flags and the raw data we will be reading from.
+ */
+
prs_set_endian_data( &rpc_in, p->endian);
+ prs_set_endian_data( &p->in_data.data, p->endian);
prs_give_memory( &rpc_in, data_p, (uint32)data_len, False);
@@ -601,6 +607,9 @@ static ssize_t process_complete_pdu(pipes_struct *p)
break;
}
+ /* Reset to little endian. Probably don't need this but it won't hurt. */
+ prs_set_endian_data( &p->in_data.data, RPC_LITTLE_ENDIAN);
+
if (!reply) {
DEBUG(3,("process_complete_pdu: DCE/RPC fault sent on pipe %s\n", p->pipe_srv_name));
set_incoming_fault(p);