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:28:07 +0000 (22: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

source3/rpc_server/srv_pipe.c

index 09b1f664401afabfe7ce91192d11906ee10bd80b..ac491b9e53ce6ffdd9ddc2614bfb79c7819aba7a 100644 (file)
@@ -2113,7 +2113,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;
        }