summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2001-03-12 20:19:31 +0000
committerJeremy Allison <jra@samba.org>2001-03-12 20:19:31 +0000
commit5107a7a96acf1949f5ae0cdc49e9c84570f3482a (patch)
tree8424faa4b1c10785d2aaae951891c5ef272438c8
parent7c99297ea1c090c8c3ecd9c9669a36dab0bfdc36 (diff)
downloadsamba-5107a7a96acf1949f5ae0cdc49e9c84570f3482a.tar.gz
samba-5107a7a96acf1949f5ae0cdc49e9c84570f3482a.tar.bz2
samba-5107a7a96acf1949f5ae0cdc49e9c84570f3482a.zip
Ok - we're now sending back policy handles to bigendian AS/U correctly.
Jeremy. (This used to be commit 67e09aea47b73e5a72aae638a58b56f2ef67f8af)
-rw-r--r--source3/rpc_server/srv_pipe_hnd.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/source3/rpc_server/srv_pipe_hnd.c b/source3/rpc_server/srv_pipe_hnd.c
index 3049c3adb9..ed1f9d36db 100644
--- a/source3/rpc_server/srv_pipe_hnd.c
+++ b/source3/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);