Complete the fix for bug 6100
authorVolker Lendecke <vl@samba.org>
Thu, 5 Mar 2009 21:20:55 +0000 (22:20 +0100)
committerKarolin Seeger <kseeger@samba.org>
Fri, 6 Mar 2009 07:28:30 +0000 (08:28 +0100)
According to [MS-RPCE].pdf, section 2.2.2.11:

----
A client or a server that (during composing of a PDU) has allocated more space
for the authentication token than the security provider fills in SHOULD fill in
the rest of the allocated space with zero octets. These zero octets are still
considered to belong to the authentication token part of the PDU.<36>
----

RPC implementations are allowed to send padding bytes at the end of an auth
footer. Windows 7 makes use of this.

Thanks to Nick Meier <nmeier@microsoft.com>

Volker
(cherry picked from commit 224364d6c9eaa4d07b57cdef04ac17acb416e413)

source/rpc_server/srv_pipe.c

index 705add6f7b3b81339ea342bee463bfd9d073e3a4..dbee76044ea48c5d5115544fe449dccdd9644327 100644 (file)
@@ -2150,7 +2150,7 @@ bool api_pipe_schannel_process(pipes_struct *p, prs_struct *rpc_in, uint32 *p_ss
 
        auth_len = p->hdr.auth_len;
 
-       if (auth_len != RPC_AUTH_SCHANNEL_SIGN_OR_SEAL_CHK_LEN) {
+       if (auth_len < RPC_AUTH_SCHANNEL_SIGN_OR_SEAL_CHK_LEN) {
                DEBUG(0,("Incorrect auth_len %u.\n", (unsigned int)auth_len ));
                return False;
        }