Complete the fix for bug 6100
authorVolker Lendecke <vl@samba.org>
Thu, 5 Mar 2009 23:14:27 +0000 (15:14 -0800)
committerJeremy Allison <jra@samba.org>
Thu, 5 Mar 2009 23:14:27 +0000 (15:14 -0800)
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 db1c3fea0e5f42165a8341277f3147d5f6aa58fa..d491bc22450ab4990c6d1c1deb8a3a4c1d913985 100644 (file)
@@ -2062,7 +2062,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;
        }