]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s4:smb_server: Use cli_credentials_init_server() for negprot
authorAndreas Schneider <asn@samba.org>
Mon, 7 Sep 2020 07:19:43 +0000 (09:19 +0200)
committerStefan Metzmacher <metze@samba.org>
Mon, 7 Sep 2020 13:22:26 +0000 (13:22 +0000)
Signed-off-by: Andreas Schneider <asn@samba.org>
Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Mon Sep  7 13:22:26 UTC 2020 on sn-devel-184

source4/smb_server/smb/negprot.c
source4/smb_server/smb2/negprot.c

index a6177a7201960895c7c0999e50e49b33d3bec414..04b69dd988300e5c5b4727a3ff370389298ede20 100644 (file)
@@ -374,22 +374,22 @@ static void reply_nt1(struct smbsrv_request *req, uint16_t choice)
                DATA_BLOB blob = data_blob_null;
                const char *oid;
                NTSTATUS nt_status;
-               
-               server_credentials 
-                       = cli_credentials_init(req);
-               if (!server_credentials) {
-                       smbsrv_terminate_connection(req->smb_conn, "Failed to init server credentials\n");
-                       return;
-               }
-               
-               cli_credentials_set_conf(server_credentials, req->smb_conn->lp_ctx);
-               nt_status = cli_credentials_set_machine_account(server_credentials, req->smb_conn->lp_ctx);
-               if (!NT_STATUS_IS_OK(nt_status)) {
-                       DEBUG(10, ("Failed to obtain server credentials, perhaps a standalone server?: %s\n", nt_errstr(nt_status)));
+
+               server_credentials =
+                       cli_credentials_init_server(req, req->smb_conn->lp_ctx);
+               if (server_credentials == NULL) {
+                       DBG_DEBUG("Failed to obtain server credentials, "
+                                 "perhaps a standalone server?\n");
                        /*
-                        * We keep the server_credentials as anonymous
-                        * this is required for the spoolss.notify test
+                        * Create anon server credentials for for the
+                        * spoolss.notify test.
                         */
+                       server_credentials = cli_credentials_init_anon(req);
+                       if (server_credentials == NULL) {
+                               smbsrv_terminate_connection(req->smb_conn,
+                                       "Failed to init server credentials\n");
+                               return;
+                       }
                }
 
                nt_status = samba_server_gensec_start(req,
index 4aaaf46793bee4bce1a438e3e896b4042c8edc43..c433eb194bd16adcb5a69fcf03e69b93802980ee 100644 (file)
@@ -39,20 +39,21 @@ static NTSTATUS smb2srv_negprot_secblob(struct smb2srv_request *req, DATA_BLOB *
        NTSTATUS nt_status;
        struct cli_credentials *server_credentials;
 
-       server_credentials = cli_credentials_init(req);
-       if (!server_credentials) {
-               smbsrv_terminate_connection(req->smb_conn, "Failed to init server credentials\n");
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       cli_credentials_set_conf(server_credentials, req->smb_conn->lp_ctx);
-       nt_status = cli_credentials_set_machine_account(server_credentials, req->smb_conn->lp_ctx);
-       if (!NT_STATUS_IS_OK(nt_status)) {
-               DEBUG(10, ("Failed to obtain server credentials, perhaps a standalone server?: %s\n", nt_errstr(nt_status)));
+       server_credentials =
+               cli_credentials_init_server(req, req->smb_conn->lp_ctx);
+       if (server_credentials == NULL) {
+               DBG_DEBUG("Failed to obtain server credentials, "
+                         "perhaps a standalone server?\n");
                /*
-                * We keep the server_credentials as anonymous
-                * this is required for the spoolss.notify test
+                * Create anon server credentials for for the
+                * spoolss.notify test.
                 */
+               server_credentials = cli_credentials_init_anon(req);
+               if (server_credentials == NULL) {
+                       smbsrv_terminate_connection(req->smb_conn,
+                               "Failed to init server credentials\n");
+                       return NT_STATUS_NO_MEMORY;
+               }
        }
 
        req->smb_conn->negotiate.server_credentials = talloc_steal(req->smb_conn, server_credentials);