diff options
author | Andrew Tridgell <tridge@samba.org> | 2004-07-15 05:11:27 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:57:36 -0500 |
commit | 2392e9aaa7de6fcaf292050714a5c6cc229ea77c (patch) | |
tree | e7ee9055051b7ab809ed1cde09721645e43553a6 /source4 | |
parent | 4f5e07cef84914ea6be6dec58f49b01b2a0b4d58 (diff) | |
download | samba-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')
-rw-r--r-- | source4/librpc/rpc/dcerpc.c | 10 |
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: |