summaryrefslogtreecommitdiff
path: root/source4/librpc/rpc
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2004-07-15 05:11:27 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:57:36 -0500
commit2392e9aaa7de6fcaf292050714a5c6cc229ea77c (patch)
treee7ee9055051b7ab809ed1cde09721645e43553a6 /source4/librpc/rpc
parent4f5e07cef84914ea6be6dec58f49b01b2a0b4d58 (diff)
downloadsamba-2392e9aaa7de6fcaf292050714a5c6cc229ea77c.tar.gz
samba-2392e9aaa7de6fcaf292050714a5c6cc229ea77c.tar.bz2
samba-2392e9aaa7de6fcaf292050714a5c6cc229ea77c.zip
r1509: in order to interoperate with NT3.1 we need to ignore extra data at the end of RPC PDUs.
It turns out that NT3.1 adds junk onto the end of every PDU. (This used to be commit a4a89cffd85c213a4d751c24ccda438e44df4d2e)
Diffstat (limited to 'source4/librpc/rpc')
-rw-r--r--source4/librpc/rpc/dcerpc.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/source4/librpc/rpc/dcerpc.c b/source4/librpc/rpc/dcerpc.c
index f7c0100f47..ea4e82f781 100644
--- a/source4/librpc/rpc/dcerpc.c
+++ b/source4/librpc/rpc/dcerpc.c
@@ -916,9 +916,13 @@ NTSTATUS dcerpc_ndr_request(struct dcerpc_pipe *p,
}
if (pull->offset != pull->data_size) {
- DEBUG(0,("Warning! %d unread bytes\n", pull->data_size - pull->offset));
- status = NT_STATUS_INFO_LENGTH_MISMATCH;
- goto failed;
+ DEBUG(0,("Warning! ignoring %d unread bytes in rpc packet!\n",
+ pull->data_size - pull->offset));
+ /* we used return NT_STATUS_INFO_LENGTH_MISMATCH here,
+ but it turns out that early versions of NT
+ (specifically NT3.1) add junk onto the end of rpc
+ packets, so if we want to interoperate at all with
+ those versions then we need to ignore this error */
}
failed: