summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2010-11-17 08:56:28 -0700
committerKarolin Seeger <kseeger@samba.org>2011-01-13 17:58:51 +0100
commit7943955d37a74b207f3cbcfd3bb37645b9ac9465 (patch)
tree165ef2e121b5c85a1b65aa97b0b0a30b8b8586a1 /source3
parentfc80176d53a35c5e0d188c82f3cc301106c87671 (diff)
downloadsamba-7943955d37a74b207f3cbcfd3bb37645b9ac9465.tar.gz
s3: Make winbind recover from a signing error
When winbind sees a signing error on the smb connection to a DC (for whatever reason, our bug, network glitch, etc) it should recover properly. The "old" code in clientgen.c just closed the socket in this case. This is the right thing to do, this connection is spoiled anyway. The new, async code did not do this so far, which led to the code in winbindd_cm.c not detect that we need to reconnect. Fix bug #7800 (winbind does not recover from smb signing errors). (cherry picked from commit 8c2493ff2e646928035ec7296f4451f09390f6aa)
Diffstat (limited to 'source3')
-rw-r--r--source3/libsmb/async_smb.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/source3/libsmb/async_smb.c b/source3/libsmb/async_smb.c
index e683e375d9a..0336ff226c8 100644
--- a/source3/libsmb/async_smb.c
+++ b/source3/libsmb/async_smb.c
@@ -848,6 +848,8 @@ static NTSTATUS validate_smb_crypto(struct cli_state *cli, char *pdu)
if (!cli_check_sign_mac(cli, pdu)) {
DEBUG(10, ("cli_check_sign_mac failed\n"));
+ close(cli->fd);
+ cli->fd = -1;
return NT_STATUS_ACCESS_DENIED;
}