Complete the fix for bug 6100
authorVolker Lendecke <vl@samba.org>
Thu, 5 Mar 2009 23:12:55 +0000 (15:12 -0800)
committerJeremy Allison <jra@samba.org>
Thu, 5 Mar 2009 23:12:55 +0000 (15:12 -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 05cdb65a8317cba332852a8f91218bfd3bdf4f80..65bc0aed61ccbf2e3f830bd3306a302074cbfa48 100644 (file)
@@ -2101,7 +2101,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;
        }