]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3: libcli: smb1: Ensure we correctly finish a tevent req if the writev fails in...
authorJeremy Allison <jra@samba.org>
Thu, 19 Mar 2015 17:40:56 +0000 (10:40 -0700)
committerKarolin Seeger <kseeger@samba.org>
Tue, 24 Mar 2015 01:40:28 +0000 (02:40 +0100)
We haven't added the req to the pending array yet, as SMB1 requests can
be one-way (no reply needed). So if we error out after the writev, but
before we add to the pending array we must rember to terminate our current
tevent req with a tevent_req_nterror call.

Fixes bug 11173 - SMB1 Server disconnect can cause timeout on client write error.

https://bugzilla.samba.org/show_bug.cgi?id=11173

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
Autobuild-User(master): Michael Adam <obnox@samba.org>
Autobuild-Date(master): Fri Mar 20 05:08:25 CET 2015 on sn-devel-104

(cherry picked from commit 00d92f59257ce8fe1729becd72e13a42dfff0589)

libcli/smb/smbXcli_base.c

index 7fadffa189c4b297581626e4c44a9a5dd6509150..0c6a6d29476c61f7f2d2b8f1f141536ca7b7e5bb 100644 (file)
@@ -1580,6 +1580,7 @@ static void smb1cli_req_writev_done(struct tevent_req *subreq)
        if (nwritten == -1) {
                NTSTATUS status = map_nt_error_from_unix_common(err);
                smbXcli_conn_disconnect(state->conn, status);
+               tevent_req_nterror(req, status);
                return;
        }