summaryrefslogtreecommitdiffstats
path: root/source/libsmb/trusts_util.c
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2008-02-16 16:04:01 +0100
committerGünther Deschner <gd@samba.org>2008-02-16 16:04:01 +0100
commit33f91c894488687a42500e751eb9016d99d9129c (patch)
tree059734a6dcdaa097af3f7e936564716c0a7d0444 /source/libsmb/trusts_util.c
parent2fb73a3545634982d17d3823cb629f06c5779fc0 (diff)
downloadsamba-33f91c894488687a42500e751eb9016d99d9129c.tar.gz
samba-33f91c894488687a42500e751eb9016d99d9129c.tar.xz
samba-33f91c894488687a42500e751eb9016d99d9129c.zip
Use rpccli_netr_ServerPasswordSet in "just_change_the_password()".
Guenther
Diffstat (limited to 'source/libsmb/trusts_util.c')
-rw-r--r--source/libsmb/trusts_util.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/source/libsmb/trusts_util.c b/source/libsmb/trusts_util.c
index 11f691bee61..1e92bf21de8 100644
--- a/source/libsmb/trusts_util.c
+++ b/source/libsmb/trusts_util.c
@@ -58,7 +58,32 @@ static NTSTATUS just_change_the_password(struct rpc_pipe_client *cli, TALLOC_CTX
}
}
- result = rpccli_net_srv_pwset(cli, mem_ctx, global_myname(), new_trust_passwd_hash);
+ {
+ struct netr_Authenticator clnt_creds, srv_cred;
+ struct samr_Password new_password;
+
+ netlogon_creds_client_step(cli->dc, &clnt_creds);
+
+ cred_hash3(new_password.hash,
+ new_trust_passwd_hash,
+ cli->dc->sess_key, 1);
+
+ result = rpccli_netr_ServerPasswordSet(cli, mem_ctx,
+ cli->dc->remote_machine,
+ cli->dc->mach_acct,
+ sec_channel_type,
+ global_myname(),
+ &clnt_creds,
+ &srv_cred,
+ &new_password);
+
+ /* Always check returned credentials. */
+ if (!netlogon_creds_client_check(cli->dc, &srv_cred.cred)) {
+ DEBUG(0,("rpccli_netr_ServerPasswordSet: "
+ "credentials chain check failed\n"));
+ return NT_STATUS_ACCESS_DENIED;
+ }
+ }
if (!NT_STATUS_IS_OK(result)) {
DEBUG(0,("just_change_the_password: unable to change password (%s)!\n",