diff options
author | Günther Deschner <gd@samba.org> | 2008-02-16 16:04:01 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2008-02-16 16:04:01 +0100 |
commit | 33f91c894488687a42500e751eb9016d99d9129c (patch) | |
tree | 059734a6dcdaa097af3f7e936564716c0a7d0444 /source/libsmb/trusts_util.c | |
parent | 2fb73a3545634982d17d3823cb629f06c5779fc0 (diff) | |
download | samba-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.c | 27 |
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", |