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 <[email protected]>
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 <[email protected]>
Date:   Thu Sep 24 15:44:28 2009 -0700

    Revert b39c390280d1f268e2550c731057aec550a3f086 - casts should not
    be here.
    Jeremy.

commit 4f10aa59730b44fc4328daca3e2e43693fc1b69f
Author: Jeremy Allison <[email protected]>
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

Reply via email to