[SCM] Samba Shared Repository - branch v3-0-test updated - release-3-0-29-25-g008c753

Günther Deschner gd at samba.org
Wed Jun 4 18:02:56 GMT 2008


The branch, v3-0-test has been updated
       via  008c7535b4bbd804952ac3d3c51da4223000ce60 (commit)
      from  ad29a26c4226aa4d4a6a586413dcb0749bfea6b3 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-0-test


- Log -----------------------------------------------------------------
commit 008c7535b4bbd804952ac3d3c51da4223000ce60
Author: Günther Deschner <gd at samba.org>
Date:   Wed Jun 4 20:02:13 2008 +0200

    net: for robustness reasons, fallback to level 24 pwd set while joining.
    
    DCERPC_FAULT_INVALID_TAG is returned by older windows releases, in that case it
    is wise to do what we did prior to 3.0.28.
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source/utils/net_domain.c |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/utils/net_domain.c b/source/utils/net_domain.c
index 533bb9c..1c19a61 100644
--- a/source/utils/net_domain.c
+++ b/source/utils/net_domain.c
@@ -213,6 +213,7 @@ NTSTATUS netdom_join_domain( TALLOC_CTX *mem_ctx, struct cli_state *cli,
 	uint32 fields_present;
 	uchar pwbuf[532];
 	SAM_USERINFO_CTR ctr;
+	SAM_USER_INFO_24 p24;
 	SAM_USER_INFO_25 p25;
 	const int infolevel = 25;
 	struct MD5Context md5ctx;
@@ -337,6 +338,27 @@ NTSTATUS netdom_join_domain( TALLOC_CTX *mem_ctx, struct cli_state *cli,
 	status = rpccli_samr_set_userinfo2(pipe_hnd, mem_ctx, &user_pol,
 					   infolevel, &cli->user_session_key, &ctr);
 
+	if (NT_STATUS_EQUAL(status, NT_STATUS(DCERPC_FAULT_INVALID_TAG))) {
+
+		uchar pwbuf2[516];
+
+		ZERO_STRUCT(p24);
+
+		encode_pw_buffer(pwbuf2, clear_pw, STR_UNICODE);
+
+		/* retry with level 24 */
+		init_sam_user_info24(&p24, (char *)pwbuf2, 24);
+
+		ctr.switch_value = 24;
+		ctr.info.id24    = &p24;
+
+		status = rpccli_samr_set_userinfo(pipe_hnd, mem_ctx,
+						  &user_pol,
+						  24,
+						  &cli->user_session_key,
+						  &ctr);
+	}
+
 	if ( !NT_STATUS_IS_OK(status) ) {
 		d_fprintf( stderr, "Failed to set password for machine account (%s)\n", 
 			nt_errstr(status));


-- 
Samba Shared Repository


More information about the samba-cvs mailing list