Complete the fix for bug 6100
authorVolker Lendecke <vl@samba.org>
Thu, 5 Mar 2009 21:20:55 +0000 (22:20 +0100)
committerVolker Lendecke <vl@samba.org>
Thu, 5 Mar 2009 21:20:55 +0000 (22:20 +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

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;
        }