auth/ntlmssp: use ntlmssp_version_blob() in the server
authorStefan Metzmacher <metze@samba.org>
Tue, 24 Nov 2015 13:07:23 +0000 (14:07 +0100)
committerStefan Metzmacher <metze@samba.org>
Thu, 10 Mar 2016 05:52:28 +0000 (06:52 +0100)
We already set NTLMSSP_NEGOTIATE_VERSION in
gensec_ntlmssp_server_start(), so it's always
set in chal_flags.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Günther Deschner <gd@samba.org>
auth/ntlmssp/ntlmssp_server.c

index 2f3f0bb723f8107c133e4ed02f2895dce3666cff..94692cdda9b1cc34de98d8866b52b2206c3404fe 100644 (file)
@@ -168,29 +168,7 @@ NTSTATUS gensec_ntlmssp_server_negotiate(struct gensec_security *gensec_security
        {
                /* Marshal the packet in the right format, be it unicode or ASCII */
                const char *gen_string;
-               DATA_BLOB version_blob = data_blob_null;
-
-               if (chal_flags & NTLMSSP_NEGOTIATE_VERSION) {
-                       enum ndr_err_code err;
-                       struct ntlmssp_VERSION vers;
-
-                       /* "What Windows returns" as a version number. */
-                       ZERO_STRUCT(vers);
-                       vers.ProductMajorVersion = NTLMSSP_WINDOWS_MAJOR_VERSION_6;
-                       vers.ProductMinorVersion = NTLMSSP_WINDOWS_MINOR_VERSION_1;
-                       vers.ProductBuild = 0;
-                       vers.NTLMRevisionCurrent = NTLMSSP_REVISION_W2K3;
-
-                       err = ndr_push_struct_blob(&version_blob,
-                                               ntlmssp_state,
-                                               &vers,
-                                               (ndr_push_flags_fn_t)ndr_push_ntlmssp_VERSION);
-
-                       if (!NDR_ERR_CODE_IS_SUCCESS(err)) {
-                               data_blob_free(&struct_blob);
-                               return NT_STATUS_NO_MEMORY;
-                       }
-               }
+               const DATA_BLOB version_blob = ntlmssp_version_blob();
 
                if (ntlmssp_state->unicode) {
                        gen_string = "CdUdbddBb";
@@ -209,13 +187,10 @@ NTSTATUS gensec_ntlmssp_server_negotiate(struct gensec_security *gensec_security
                        version_blob.data, version_blob.length);
 
                if (!NT_STATUS_IS_OK(status)) {
-                       data_blob_free(&version_blob);
                        data_blob_free(&struct_blob);
                        return status;
                }
 
-               data_blob_free(&version_blob);
-
                if (DEBUGLEVEL >= 10) {
                        struct CHALLENGE_MESSAGE *challenge = talloc(
                                ntlmssp_state, struct CHALLENGE_MESSAGE);