[SCM] Samba Shared Repository - branch v3-2-test updated - initial-v3-2-unstable-602-gd30b945

Günther Deschner gd at samba.org
Wed Dec 12 00:00:13 GMT 2007


The branch, v3-2-test has been updated
       via  d30b945e99390761e405492e40c90e84da4fe482 (commit)
       via  3f426f394f3b1454c52d92331c14f41dd1474516 (commit)
       via  bd5308e5f63e4f692761557d0ecdee7226b66a15 (commit)
       via  88e9da2f14b41a62bdb478f9ffc2de66643bbf14 (commit)
      from  0a3be0aad7220eb97fe39460e20f36c8ae9ce474 (commit)

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


- Log -----------------------------------------------------------------
commit d30b945e99390761e405492e40c90e84da4fe482
Author: Günther Deschner <gd at samba.org>
Date:   Tue Dec 11 17:40:52 2007 +0100

    Add lp_include_registry_globals().
    
    Guenther

commit 3f426f394f3b1454c52d92331c14f41dd1474516
Author: Günther Deschner <gd at samba.org>
Date:   Tue Dec 11 21:22:04 2007 +0100

    Some cleanups for "net dom join".
    
    Guenther

commit bd5308e5f63e4f692761557d0ecdee7226b66a15
Author: Günther Deschner <gd at samba.org>
Date:   Wed Dec 12 00:42:22 2007 +0100

    Add split_domain_user() (not to mix with winbind variants).
    
    Guenther

commit 88e9da2f14b41a62bdb478f9ffc2de66643bbf14
Author: Günther Deschner <gd at samba.org>
Date:   Wed Dec 12 00:44:10 2007 +0100

    Make decode_wkssvc_join_password_buffer() return WERRORs.
    
    Guenther

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

Summary of changes:
 source/lib/util.c          |   24 ++++++++++++++++++++++++
 source/libsmb/smbencrypt.c |   19 ++++++++++++++-----
 source/param/loadparm.c    |    5 +++++
 source/utils/net_dom.c     |   13 +++++++++----
 4 files changed, 52 insertions(+), 9 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/lib/util.c b/source/lib/util.c
index 19c3e0c..73b035b 100644
--- a/source/lib/util.c
+++ b/source/lib/util.c
@@ -3197,6 +3197,30 @@ int get_safe_IVAL(const char *buf_base, size_t buf_len, char *ptr, size_t off, i
 	return IVAL(ptr,off);
 }
 
+/****************************************************************
+ Split DOM\user into DOM and user. Do not mix with winbind variants of that
+ call (they take care of winbind separator and other winbind specific settings).
+****************************************************************/
+
+void split_domain_user(TALLOC_CTX *mem_ctx,
+		       const char *full_name,
+		       char **domain,
+		       char **user)
+{
+	const char *p = NULL;
+
+	p = strchr_m(full_name, '\\');
+
+	if (p != NULL) {
+		*domain = talloc_strndup(mem_ctx, full_name,
+					 PTR_DIFF(p, full_name));
+		*user = talloc_strdup(mem_ctx, p+1);
+	} else {
+		*domain = talloc_strdup(mem_ctx, "");
+		*user = talloc_strdup(mem_ctx, full_name);
+	}
+}
+
 #if 0
 
 Disable these now we have checked all code paths and ensured
diff --git a/source/libsmb/smbencrypt.c b/source/libsmb/smbencrypt.c
index 8793fdc..9e37d1d 100644
--- a/source/libsmb/smbencrypt.c
+++ b/source/libsmb/smbencrypt.c
@@ -731,10 +731,10 @@ void encode_wkssvc_join_password_buffer(TALLOC_CTX *mem_ctx,
 	data_blob_free(&confounded_session_key);
 }
 
-void decode_wkssvc_join_password_buffer(TALLOC_CTX *mem_ctx,
-					struct wkssvc_PasswordBuffer *pwd_buf,
-					DATA_BLOB *session_key,
-					char **pwd)
+WERROR decode_wkssvc_join_password_buffer(TALLOC_CTX *mem_ctx,
+					  struct wkssvc_PasswordBuffer *pwd_buf,
+					  DATA_BLOB *session_key,
+					  char **pwd)
 {
 	uint8_t buffer[516];
 	struct MD5Context ctx;
@@ -745,6 +745,11 @@ void decode_wkssvc_join_password_buffer(TALLOC_CTX *mem_ctx,
 	int confounder_len = 8;
 	uint8_t confounder[8];
 
+	if (session_key->length != 16) {
+		DEBUG(10,("invalid session key\n"));
+		return WERR_BAD_PASSWORD;
+	}
+
 	memcpy(&confounder, &pwd_buf->data[0], confounder_len);
 	memcpy(&buffer, &pwd_buf->data[8], 516);
 
@@ -755,7 +760,11 @@ void decode_wkssvc_join_password_buffer(TALLOC_CTX *mem_ctx,
 
 	SamOEMhashBlob(buffer, 516, &confounded_session_key);
 
-	decode_pw_buffer(mem_ctx, buffer, pwd, &pwd_len, STR_UNICODE);
+	if (!decode_pw_buffer(mem_ctx, buffer, pwd, &pwd_len, STR_UNICODE)) {
+		return WERR_BAD_PASSWORD;
+	}
 
 	data_blob_free(&confounded_session_key);
+
+	return WERR_OK;
 }
diff --git a/source/param/loadparm.c b/source/param/loadparm.c
index e676edf..881bcec 100644
--- a/source/param/loadparm.c
+++ b/source/param/loadparm.c
@@ -3629,6 +3629,11 @@ static void add_to_file_list(const char *fname, const char *subfname)
 	}
 }
 
+bool lp_include_registry_globals(void)
+{
+	return include_registry_globals;
+}
+
 /*******************************************************************
  Check if a config file has changed date.
 ********************************************************************/
diff --git a/source/utils/net_dom.c b/source/utils/net_dom.c
index dc6bfb0..fd386c9 100644
--- a/source/utils/net_dom.c
+++ b/source/utils/net_dom.c
@@ -59,7 +59,9 @@ static int net_dom_unjoin(int argc, const char **argv)
 		return net_dom_usage(argc, argv);
 	}
 
-	server_name = opt_host;
+	if (opt_host) {
+		server_name = opt_host;
+	}
 
 	for (i=0; i<argc; i++) {
 		if (strnequal(argv[i], "account", strlen("account"))) {
@@ -142,7 +144,9 @@ static int net_dom_join(int argc, const char **argv)
 		return net_dom_usage(argc, argv);
 	}
 
-	server_name = opt_host;
+	if (opt_host) {
+		server_name = opt_host;
+	}
 
 	if (opt_force) {
 		join_flags |= WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED;
@@ -191,8 +195,9 @@ static int net_dom_join(int argc, const char **argv)
 	werr = NetJoinDomain(server_name, domain_name, account_ou,
 			     Account, password, join_flags);
 	if (!W_ERROR_IS_OK(werr)) {
-		printf("Failed to join domain: %s\n",
-			get_friendly_nt_error_msg(werror_to_ntstatus(werr)));
+		printf("Failed to join domain: %s (WERROR: %s)\n",
+			get_friendly_nt_error_msg(werror_to_ntstatus(werr)),
+			dos_errstr(werr));
 		goto done;
 	}
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list