Windows: Workaround Win7 SMB Reconnect Bug
authorJeffrey Altman <jaltman@your-file-system.com>
Wed, 29 Feb 2012 18:07:47 +0000 (13:07 -0500)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Thu, 1 Mar 2012 02:04:18 +0000 (18:04 -0800)
commit28a33f8492098c23f7c3c58763ace93b82ea80a7
treebf22a57fa5634ead70b22b52cf4c8a94169e393a
parent2a6ddae62e4fac5eecdf4634746e7294405393d6
Windows: Workaround Win7 SMB Reconnect Bug

The SMB specification permits the server to save a round trip
in the GSS negotiation by sending an initial security blob.
Unfortunately, doing so trips a bug in Windows 7 and Server 2008 R2
whereby the SMB 1.x redirector drops the blob on the floor after
the first connection to the server and simply attempts to reuse
the previous authentication context.  This bug can be avoided by
the server sending no security blob in the SMB_COM_NEGOTIATE
response.  This forces the client to send an initial GSS init_sec_context
blob under all circumstances which works around the bug in Microsoft's
code.

Do not call smb_NegotiateExtendedSecurity(&secBlob, &secBlobLength);

As a result of the SMB 1.x bug, all attempts to reconnect fail due to
SMB connection resets.  The SMB 1.x redirector will retry indefinitely
but all processes with outstanding requests to \\AFS will block until
the machine is rebooted.

Change-Id: Iedd58fccbf85495d48871935f6e61ede1e1240ff
Reviewed-on: http://gerrit.openafs.org/6846
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
src/WINNT/afsd/smb.c