diff options
-rw-r--r-- | source/utils/net_rpc.c | 8 | ||||
-rw-r--r-- | source/utils/net_rpc_join.c | 9 |
2 files changed, 15 insertions, 2 deletions
diff --git a/source/utils/net_rpc.c b/source/utils/net_rpc.c index 804faf3b9a4..eb5a9634c8e 100644 --- a/source/utils/net_rpc.c +++ b/source/utils/net_rpc.c @@ -1849,9 +1849,15 @@ static NTSTATUS rpc_trustdom_add_internals(const DOM_SID *domain_sid, struct cli { SAM_USERINFO_CTR ctr; SAM_USER_INFO_24 p24; + fstring ucs2_trust_password; + int ucs2_pw_len; uchar pwbuf[516]; - encode_pw_buffer((char *)pwbuf, argv[1], STR_UNICODE); + ucs2_pw_len = push_ucs2(NULL, ucs2_trust_password, argv[1], + sizeof(ucs2_trust_password), 0); + + encode_pw_buffer((char *)pwbuf, ucs2_trust_password, + ucs2_pw_len); ZERO_STRUCT(ctr); ZERO_STRUCT(p24); diff --git a/source/utils/net_rpc_join.c b/source/utils/net_rpc_join.c index 6bfeedc8a0c..eb91a7df612 100644 --- a/source/utils/net_rpc_join.c +++ b/source/utils/net_rpc_join.c @@ -115,6 +115,8 @@ int net_rpc_join_newstyle(int argc, const char **argv) /* Password stuff */ char *clear_trust_password = NULL; + fstring ucs2_trust_password; + int ucs2_pw_len; uchar pwbuf[516]; SAM_USERINFO_CTR ctr; SAM_USER_INFO_24 p24; @@ -262,7 +264,12 @@ int net_rpc_join_newstyle(int argc, const char **argv) E_md4hash(clear_trust_password, md4_trust_password); } - encode_pw_buffer(pwbuf, clear_trust_password, STR_UNICODE); + ucs2_pw_len = push_ucs2(NULL, ucs2_trust_password, + clear_trust_password, + sizeof(ucs2_trust_password), 0); + + encode_pw_buffer((char *)pwbuf, ucs2_trust_password, + ucs2_pw_len); /* Set password on machine account */ |