Jeremy, with 9a5d5cc1db0ee60486f932e34cd7961b90c70a56 you alter the in negotiate...
authorGuenther Deschner <gd@samba.org>
Mon, 11 May 2009 18:13:47 +0000 (11:13 -0700)
committerKarolin Seeger <kseeger@samba.org>
Tue, 2 Jun 2009 10:41:55 +0000 (12:41 +0200)
Guenther
(cherry picked from commit 853bbc0d3920654aa7401fa5d6fcba7ff86e1a21)

source/rpc_server/srv_netlog_nt.c

index 7ea845df82e8f79f0dbc6e96d1dd6d1cdb34080c..119dab2e3976f7321156c10b0d83a8ed1183abf2 100644 (file)
@@ -498,14 +498,13 @@ NTSTATUS _netr_ServerAuthenticate2(pipes_struct *p,
                srv_flgs |= NETLOGON_NEG_SCHANNEL;
        }
 
-       *r->out.negotiate_flags = srv_flgs;
-
        /* We use this as the key to store the creds: */
        /* r->in.computer_name */
 
        if (!p->dc || !p->dc->challenge_sent) {
                DEBUG(0,("_netr_ServerAuthenticate2: no challenge sent to client %s\n",
                        r->in.computer_name));
+               *r->out.negotiate_flags = srv_flgs;
                return NT_STATUS_ACCESS_DENIED;
        }
 
@@ -516,6 +515,7 @@ NTSTATUS _netr_ServerAuthenticate2(pipes_struct *p,
                DEBUG(0,("_netr_ServerAuthenticate2: schannel required but client failed "
                        "to offer it. Client was %s\n",
                        r->in.account_name));
+               *r->out.negotiate_flags = srv_flgs;
                return NT_STATUS_ACCESS_DENIED;
        }
 
@@ -527,6 +527,7 @@ NTSTATUS _netr_ServerAuthenticate2(pipes_struct *p,
                        "account %s: %s\n",
                        r->in.account_name, nt_errstr(status) ));
                /* always return NT_STATUS_ACCESS_DENIED */
+               *r->out.negotiate_flags = srv_flgs;
                return NT_STATUS_ACCESS_DENIED;
        }
 
@@ -544,6 +545,7 @@ NTSTATUS _netr_ServerAuthenticate2(pipes_struct *p,
                        "request from client %s machine account %s\n",
                        r->in.computer_name,
                        r->in.account_name));
+               *r->out.negotiate_flags = srv_flgs;
                return NT_STATUS_ACCESS_DENIED;
        }
 
@@ -564,6 +566,8 @@ NTSTATUS _netr_ServerAuthenticate2(pipes_struct *p,
                                            p->dc);
        unbecome_root();
 
+       *r->out.negotiate_flags = srv_flgs;
+
        return NT_STATUS_OK;
 }