[SCM] Samba Shared Repository - branch master updated - tevent-0-9-8-705-gd1aa7d4

Jeremy Allison jra at samba.org
Thu Sep 24 17:28:53 MDT 2009


The branch, master has been updated
       via  d1aa7d479697a8fcc5d8237271c473a1b831949b (commit)
       via  536c4dd2d69f9a35547c0ce77b47c4f0b03aa5ac (commit)
       via  4f10aa59730b44fc4328daca3e2e43693fc1b69f (commit)
      from  b39c390280d1f268e2550c731057aec550a3f086 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit d1aa7d479697a8fcc5d8237271c473a1b831949b
Author: Jeremy Allison <jra at samba.org>
Date:   Thu Sep 24 15:52:58 2009 -0700

    Remove the const from the str_list_XXX functions that
    allocate both list and containing strings. This fixes
    problems that people have tried to cast away and are
    not needed.
    Jeremy.

commit 536c4dd2d69f9a35547c0ce77b47c4f0b03aa5ac
Author: Jeremy Allison <jra at samba.org>
Date:   Thu Sep 24 15:44:28 2009 -0700

    Revert b39c390280d1f268e2550c731057aec550a3f086 - casts should not
    be here.
    Jeremy.

commit 4f10aa59730b44fc4328daca3e2e43693fc1b69f
Author: Jeremy Allison <jra at samba.org>
Date:   Thu Sep 24 15:42:36 2009 -0700

    Revert 918b5a7e057bd91289ec06b3ef8d95da43a50ede. This code
    should *not* return const.
    Jeremy.

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

Summary of changes:
 lib/util/util.h             |   10 +++++-----
 lib/util/util_strlist.c     |   38 +++++++++++++++++++-------------------
 source3/auth/auth.c         |   18 +++++++++---------
 source3/include/proto.h     |    2 +-
 source3/lib/util_str.c      |   12 ++++++------
 source3/param/loadparm.c    |    6 +++---
 source3/smbd/map_username.c |    2 +-
 source3/smbd/password.c     |   24 ++++++++++++------------
 8 files changed, 56 insertions(+), 56 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/util/util.h b/lib/util/util.h
index 385a3ae..c766e3d 100644
--- a/lib/util/util.h
+++ b/lib/util/util.h
@@ -407,12 +407,12 @@ _PUBLIC_ bool strequal(const char *s1, const char *s2);
 /**
   build an empty (only NULL terminated) list of strings (for expansion with str_list_add() etc)
 */
-_PUBLIC_ const char **str_list_make_empty(TALLOC_CTX *mem_ctx);
+_PUBLIC_ char **str_list_make_empty(TALLOC_CTX *mem_ctx);
 
 /**
   place the only element 'entry' into a new, NULL terminated string list
 */
-_PUBLIC_ const char **str_list_make_single(TALLOC_CTX *mem_ctx,
+_PUBLIC_ char **str_list_make_single(TALLOC_CTX *mem_ctx,
 	const char *entry);
 
 /**
@@ -420,7 +420,7 @@ _PUBLIC_ const char **str_list_make_single(TALLOC_CTX *mem_ctx,
   separator list. The separator list must contain characters less than
   or equal to 0x2f for this to work correctly on multi-byte strings
 */
-_PUBLIC_ const char **str_list_make(TALLOC_CTX *mem_ctx, const char *string,
+_PUBLIC_ char **str_list_make(TALLOC_CTX *mem_ctx, const char *string,
 	const char *sep);
 
 /**
@@ -428,7 +428,7 @@ _PUBLIC_ const char **str_list_make(TALLOC_CTX *mem_ctx, const char *string,
  * Entries are seperated by spaces and can be enclosed by quotes. 
  * Does NOT support escaping
  */
-_PUBLIC_ const char **str_list_make_shell(TALLOC_CTX *mem_ctx, const char *string, const char *sep);
+_PUBLIC_ char **str_list_make_shell(TALLOC_CTX *mem_ctx, const char *string, const char *sep);
 
 /**
  * join a list back to one string 
@@ -447,7 +447,7 @@ _PUBLIC_ size_t str_list_length(const char * const *list);
 /**
   copy a string list
 */
-_PUBLIC_ const char **str_list_copy(TALLOC_CTX *mem_ctx, const char **list);
+_PUBLIC_ char **str_list_copy(TALLOC_CTX *mem_ctx, const char **list);
 
 /**
    Return true if all the elements of the list match exactly.
diff --git a/lib/util/util_strlist.c b/lib/util/util_strlist.c
index b4b991f..1331fee 100644
--- a/lib/util/util_strlist.c
+++ b/lib/util/util_strlist.c
@@ -31,11 +31,11 @@
 /**
   build an empty (only NULL terminated) list of strings (for expansion with str_list_add() etc)
 */
-_PUBLIC_ const char **str_list_make_empty(TALLOC_CTX *mem_ctx)
+_PUBLIC_ char **str_list_make_empty(TALLOC_CTX *mem_ctx)
 {
-	const char **ret = NULL;
+	char **ret = NULL;
 
-	ret = talloc_array(mem_ctx, const char *, 1);
+	ret = talloc_array(mem_ctx, char *, 1);
 	if (ret == NULL) {
 		return NULL;
 	}
@@ -48,11 +48,11 @@ _PUBLIC_ const char **str_list_make_empty(TALLOC_CTX *mem_ctx)
 /**
   place the only element 'entry' into a new, NULL terminated string list
 */
-_PUBLIC_ const char **str_list_make_single(TALLOC_CTX *mem_ctx, const char *entry)
+_PUBLIC_ char **str_list_make_single(TALLOC_CTX *mem_ctx, const char *entry)
 {
-	const char **ret = NULL;
+	char **ret = NULL;
 
-	ret = talloc_array(mem_ctx, const char *, 2);
+	ret = talloc_array(mem_ctx, char *, 2);
 	if (ret == NULL) {
 		return NULL;
 	}
@@ -72,30 +72,30 @@ _PUBLIC_ const char **str_list_make_single(TALLOC_CTX *mem_ctx, const char *entr
   separator list. The separator list must contain characters less than
   or equal to 0x2f for this to work correctly on multi-byte strings
 */
-_PUBLIC_ const char **str_list_make(TALLOC_CTX *mem_ctx, const char *string, const char *sep)
+_PUBLIC_ char **str_list_make(TALLOC_CTX *mem_ctx, const char *string, const char *sep)
 {
 	int num_elements = 0;
-	const char **ret = NULL;
+	char **ret = NULL;
 
 	if (sep == NULL) {
 		sep = LIST_SEP;
 	}
 
-	ret = talloc_array(mem_ctx, const char *, 1);
+	ret = talloc_array(mem_ctx, char *, 1);
 	if (ret == NULL) {
 		return NULL;
 	}
 
 	while (string && *string) {
 		size_t len = strcspn(string, sep);
-		const char **ret2;
+		char **ret2;
 		
 		if (len == 0) {
 			string += strspn(string, sep);
 			continue;
 		}
 
-		ret2 = talloc_realloc(mem_ctx, ret, const char *,
+		ret2 = talloc_realloc(mem_ctx, ret, char *,
 			num_elements+2);
 		if (ret2 == NULL) {
 			talloc_free(ret);
@@ -123,12 +123,12 @@ _PUBLIC_ const char **str_list_make(TALLOC_CTX *mem_ctx, const char *string, con
  * Entries are seperated by spaces and can be enclosed by quotes. 
  * Does NOT support escaping
  */
-_PUBLIC_ const char **str_list_make_shell(TALLOC_CTX *mem_ctx, const char *string, const char *sep)
+_PUBLIC_ char **str_list_make_shell(TALLOC_CTX *mem_ctx, const char *string, const char *sep)
 {
 	int num_elements = 0;
-	const char **ret = NULL;
+	char **ret = NULL;
 
-	ret = talloc_array(mem_ctx, const char *, 1);
+	ret = talloc_array(mem_ctx, char *, 1);
 	if (ret == NULL) {
 		return NULL;
 	}
@@ -139,7 +139,7 @@ _PUBLIC_ const char **str_list_make_shell(TALLOC_CTX *mem_ctx, const char *strin
 	while (string && *string) {
 		size_t len = strcspn(string, sep);
 		char *element;
-		const char **ret2;
+		char **ret2;
 		
 		if (len == 0) {
 			string += strspn(string, sep);
@@ -161,7 +161,7 @@ _PUBLIC_ const char **str_list_make_shell(TALLOC_CTX *mem_ctx, const char *strin
 			return NULL;
 		}
 
-		ret2 = talloc_realloc(mem_ctx, ret, const char *, num_elements+2);
+		ret2 = talloc_realloc(mem_ctx, ret, char *, num_elements+2);
 		if (ret2 == NULL) {
 			talloc_free(ret);
 			return NULL;
@@ -238,15 +238,15 @@ _PUBLIC_ size_t str_list_length(const char * const *list)
 /**
   copy a string list
 */
-_PUBLIC_ const char **str_list_copy(TALLOC_CTX *mem_ctx, const char **list)
+_PUBLIC_ char **str_list_copy(TALLOC_CTX *mem_ctx, const char **list)
 {
 	int i;
-	const char **ret;
+	char **ret;
 
 	if (list == NULL)
 		return NULL;
 	
-	ret = talloc_array(mem_ctx, const char *, str_list_length(list)+1);
+	ret = talloc_array(mem_ctx, char *, str_list_length(list)+1);
 	if (ret == NULL) 
 		return NULL;
 
diff --git a/source3/auth/auth.c b/source3/auth/auth.c
index b445987..ce8722a 100644
--- a/source3/auth/auth.c
+++ b/source3/auth/auth.c
@@ -455,7 +455,7 @@ NTSTATUS make_auth_context_subsystem(struct auth_context **auth_context)
 	NTSTATUS nt_status;
 
 	if (lp_auth_methods()
-	    && !(auth_method_list = (char **) str_list_copy(talloc_tos(), 
+	    && !(auth_method_list = str_list_copy(talloc_tos(), 
 			      lp_auth_methods()))) {
 		return NT_STATUS_NO_MEMORY;
 	}
@@ -465,13 +465,13 @@ NTSTATUS make_auth_context_subsystem(struct auth_context **auth_context)
 		{
 		case SEC_DOMAIN:
 			DEBUG(5,("Making default auth method list for security=domain\n"));
-			auth_method_list = (char **) str_list_make_v3(
+			auth_method_list = str_list_make_v3(
 				talloc_tos(), "guest sam winbind:ntdomain",
 				NULL);
 			break;
 		case SEC_SERVER:
 			DEBUG(5,("Making default auth method list for security=server\n"));
-			auth_method_list = (char **) str_list_make_v3(
+			auth_method_list = str_list_make_v3(
 				talloc_tos(), "guest sam smbserver",
 				NULL);
 			break;
@@ -479,36 +479,36 @@ NTSTATUS make_auth_context_subsystem(struct auth_context **auth_context)
 			if (lp_encrypted_passwords()) {	
 				if ((lp_server_role() == ROLE_DOMAIN_PDC) || (lp_server_role() == ROLE_DOMAIN_BDC)) {
 					DEBUG(5,("Making default auth method list for DC, security=user, encrypt passwords = yes\n"));
-					auth_method_list = (char **) str_list_make_v3(
+					auth_method_list = str_list_make_v3(
 						talloc_tos(),
 						"guest sam winbind:trustdomain",
 						NULL);
 				} else {
 					DEBUG(5,("Making default auth method list for standalone security=user, encrypt passwords = yes\n"));
-					auth_method_list = (char **) str_list_make_v3(
+					auth_method_list = str_list_make_v3(
 						talloc_tos(), "guest sam",
 						NULL);
 				}
 			} else {
 				DEBUG(5,("Making default auth method list for security=user, encrypt passwords = no\n"));
-				auth_method_list = (char **) str_list_make_v3(
+				auth_method_list = str_list_make_v3(
 					talloc_tos(), "guest unix", NULL);
 			}
 			break;
 		case SEC_SHARE:
 			if (lp_encrypted_passwords()) {
 				DEBUG(5,("Making default auth method list for security=share, encrypt passwords = yes\n"));
-				auth_method_list = (char **) str_list_make_v3(
+				auth_method_list = str_list_make_v3(
 					talloc_tos(), "guest sam", NULL);
 			} else {
 				DEBUG(5,("Making default auth method list for security=share, encrypt passwords = no\n"));
-				auth_method_list = (char **) str_list_make_v3(
+				auth_method_list = str_list_make_v3(
 					talloc_tos(), "guest unix", NULL);
 			}
 			break;
 		case SEC_ADS:
 			DEBUG(5,("Making default auth method list for security=ADS\n"));
-			auth_method_list = (char **) str_list_make_v3(
+			auth_method_list = str_list_make_v3(
 				talloc_tos(), "guest sam winbind:ntdomain",
 				NULL);
 			break;
diff --git a/source3/include/proto.h b/source3/include/proto.h
index e17486b..d664a26 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -1563,7 +1563,7 @@ bool validate_net_name( const char *name,
 		const char *invalid_chars,
 		int max_len);
 char *escape_shell_string(const char *src);
-const char **str_list_make_v3(TALLOC_CTX *mem_ctx, const char *string, const char *sep);
+char **str_list_make_v3(TALLOC_CTX *mem_ctx, const char *string, const char *sep);
 
 /* The following definitions come from lib/util_unistr.c  */
 
diff --git a/source3/lib/util_str.c b/source3/lib/util_str.c
index 2136388..9a0b12a 100644
--- a/source3/lib/util_str.c
+++ b/source3/lib/util_str.c
@@ -2430,10 +2430,10 @@ char *escape_shell_string(const char *src)
 
 #define S_LIST_ABS 16 /* List Allocation Block Size */
 
-const char **str_list_make_v3(TALLOC_CTX *mem_ctx, const char *string,
+char **str_list_make_v3(TALLOC_CTX *mem_ctx, const char *string,
 	const char *sep)
 {
-	const char **list;
+	char **list;
 	const char *str;
 	char *s, *tok;
 	int num, lsize;
@@ -2441,7 +2441,7 @@ const char **str_list_make_v3(TALLOC_CTX *mem_ctx, const char *string,
 	if (!string || !*string)
 		return NULL;
 
-	list = TALLOC_ARRAY(mem_ctx, const char *, S_LIST_ABS+1);
+	list = TALLOC_ARRAY(mem_ctx, char *, S_LIST_ABS+1);
 	if (list == NULL) {
 		return NULL;
 	}
@@ -2461,11 +2461,11 @@ const char **str_list_make_v3(TALLOC_CTX *mem_ctx, const char *string,
 	while (next_token_talloc(list, &str, &tok, sep)) {
 
 		if (num == lsize) {
-			const char **tmp;
+			char **tmp;
 
 			lsize += S_LIST_ABS;
 
-			tmp = TALLOC_REALLOC_ARRAY(mem_ctx, list, const char *,
+			tmp = TALLOC_REALLOC_ARRAY(mem_ctx, list, char *,
 						   lsize + 1);
 			if (tmp == NULL) {
 				DEBUG(0,("str_list_make: "
@@ -2477,7 +2477,7 @@ const char **str_list_make_v3(TALLOC_CTX *mem_ctx, const char *string,
 			list = tmp;
 
 			memset (&list[num], 0,
-				((sizeof(const char**)) * (S_LIST_ABS +1)));
+				((sizeof(char**)) * (S_LIST_ABS +1)));
 		}
 
 		list[num] = tok;
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index c93787e..b278b96 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -6745,7 +6745,7 @@ static void copy_service(struct service *pserviceDest, struct service *pserviceS
 					break;
 				case P_LIST:
 					TALLOC_FREE(*((char ***)dest_ptr));
-					*((const char ***)dest_ptr) = str_list_copy(NULL, 
+					*((char ***)dest_ptr) = str_list_copy(NULL, 
 						      *(const char ***)src_ptr);
 					break;
 				default:
@@ -8218,8 +8218,8 @@ static void lp_save_defaults(void)
 			continue;
 		switch (parm_table[i].type) {
 			case P_LIST:
-				parm_table[i].def.lvalue = (char **)
-					str_list_copy(NULL, *(const char ***)parm_table[i].ptr);
+				parm_table[i].def.lvalue = str_list_copy(
+					NULL, *(const char ***)parm_table[i].ptr);
 				break;
 			case P_STRING:
 			case P_USTRING:
diff --git a/source3/smbd/map_username.c b/source3/smbd/map_username.c
index e9ef74c..24b4ddd 100644
--- a/source3/smbd/map_username.c
+++ b/source3/smbd/map_username.c
@@ -146,7 +146,7 @@ bool map_username(struct smbd_server_connection *sconn, fstring user)
 	while((s=fgets_slash(buf,sizeof(buf),f))!=NULL) {
 		char *unixname = s;
 		char *dosname = strchr_m(unixname,'=');
-		const char **dosuserlist;
+		char **dosuserlist;
 		bool return_if_mapped = False;
 
 		if (!dosname)
diff --git a/source3/smbd/password.c b/source3/smbd/password.c
index d6a8447..4c1cef4 100644
--- a/source3/smbd/password.c
+++ b/source3/smbd/password.c
@@ -551,13 +551,14 @@ bool user_in_list(struct smbd_server_connection *sconn,
 static bool user_ok(struct smbd_server_connection *sconn,
 		    const char *user, int snum)
 {
+	char **valid, **invalid;
 	bool ret;
 
+	valid = invalid = NULL;
 	ret = True;
 
 	if (lp_invalid_users(snum)) {
-		char **invalid = (char **) str_list_copy(talloc_tos(),
-			lp_invalid_users(snum));
+		invalid = str_list_copy(talloc_tos(), lp_invalid_users(snum));
 		if (invalid &&
 		    str_list_substitute(invalid, "%S", lp_servicename(snum))) {
 
@@ -566,37 +567,36 @@ static bool user_ok(struct smbd_server_connection *sconn,
 
 			if ( invalid && str_list_sub_basic(invalid, "", "") ) {
 				ret = !user_in_list(sconn, user,
-						(const char **)invalid);
+						    (const char **)invalid);
 			}
 		}
-		TALLOC_FREE(invalid);
 	}
+	TALLOC_FREE(invalid);
 
 	if (ret && lp_valid_users(snum)) {
-		char **valid = (char **) str_list_copy(talloc_tos(),
-			lp_valid_users(snum));
-		if (valid &&
-		     str_list_substitute(valid, "%S", lp_servicename(snum))) {
+		valid = str_list_copy(talloc_tos(), lp_valid_users(snum));
+		if ( valid &&
+		     str_list_substitute(valid, "%S", lp_servicename(snum)) ) {
 
 			/* This is used in sec=share only, so no current user
 			 * around to pass to str_list_sub_basic() */
 
 			if ( valid && str_list_sub_basic(valid, "", "") ) {
 				ret = user_in_list(sconn, user,
-						(const char **)valid);
+						   (const char **)valid);
 			}
 		}
-		TALLOC_FREE(valid);
 	}
+	TALLOC_FREE(valid);
 
 	if (ret && lp_onlyuser(snum)) {
-		char **user_list = (char **) str_list_make_v3(
+		char **user_list = str_list_make_v3(
 			talloc_tos(), lp_username(snum), NULL);
 		if (user_list &&
 		    str_list_substitute(user_list, "%S",
 					lp_servicename(snum))) {
 			ret = user_in_list(sconn, user,
-						(const char **)user_list);
+					   (const char **)user_list);
 		}
 		TALLOC_FREE(user_list);
 	}


-- 
Samba Shared Repository


More information about the samba-cvs mailing list