libcli:smb2: Gracefully handle not supported for FSCTL_VALIDATE_NEGOTIATE_INFO
authorAndreas Schneider <asn@samba.org>
Tue, 30 May 2017 14:30:33 +0000 (16:30 +0200)
committerKarolin Seeger <kseeger@samba.org>
Mon, 19 Jun 2017 13:16:54 +0000 (15:16 +0200)
If FSCTL_VALIDATE_NEGOTIATE_INFO is not implemented, e.g. in a SMB2 only
server then gracefully handle NT_STATUS_NOT_SUPPORTED too.

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

Signed-off-by: Andreas Schneider <asn@samba.org>
Signed-off-by: Guenther Deschner <gd@samba.org>
Pair-Programmed-With: Guenther Deschner <gd@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Thu Jun 15 17:32:45 CEST 2017 on sn-devel-144

(cherry picked from commit a4d9438ecf92614a0915b9cf61f905ea8170043a)

Autobuild-User(v4-5-test): Karolin Seeger <kseeger@samba.org>
Autobuild-Date(v4-5-test): Mon Jun 19 15:16:54 CEST 2017 on sn-devel-144

libcli/smb/smbXcli_base.c

index 0a2473ef632d6d965ff58875546330e5378e9b6a..aca5363a66f7395f5485976359d3fa6b8687bfe0 100644 (file)
@@ -5192,6 +5192,21 @@ static void smb2cli_validate_negotiate_info_done(struct tevent_req *subreq)
                tevent_req_done(req);
                return;
        }
+       if (NT_STATUS_EQUAL(status, NT_STATUS_NOT_SUPPORTED)) {
+               /*
+                * The response was signed, but not supported
+                *
+                * This might be returned by older Windows versions or by
+                * NetApp SMB server implementations.
+                *
+                * See
+                *
+                * https://blogs.msdn.microsoft.com/openspecification/2012/06/28/smb3-secure-dialect-negotiation/
+                *
+                */
+               tevent_req_done(req);
+               return;
+       }
        if (tevent_req_nterror(req, status)) {
                return;
        }