s3: Make winbind recover from a signing error
authorVolker Lendecke <vl@samba.org>
Thu, 18 Nov 2010 12:28:47 +0000 (13:28 +0100)
committerKarolin Seeger <kseeger@samba.org>
Sat, 5 Mar 2011 13:34:39 +0000 (14:34 +0100)
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 49632d414e13ecd2f17362869c5dc1cceb47862b)

source3/libsmb/async_smb.c

index e8a0b138804d44c72179f45c024f396de91f586e..1f4ef6f130d3c9a9c07690e8190de67ca69f0157 100644 (file)
@@ -705,6 +705,8 @@ static void cli_smb_received(struct tevent_req *subreq)
                DEBUG(10, ("cli_check_sign_mac failed\n"));
                TALLOC_FREE(inbuf);
                status = NT_STATUS_ACCESS_DENIED;
+               close(cli->fd);
+               cli->fd = -1;
                goto fail;
        }