r25047: Fix more warnings.
authorJelmer Vernooij <jelmer@samba.org>
Sun, 9 Sep 2007 19:34:30 +0000 (19:34 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 20:05:49 +0000 (15:05 -0500)
(This used to be commit 69de86d2d2e49439760fbc61901eb87fb7fc5d55)

14 files changed:
source4/auth/auth.c
source4/lib/messaging/messaging.c
source4/lib/registry/local.c
source4/lib/registry/patchfile_preg.c
source4/lib/registry/regf.c
source4/lib/util/ms_fnmatch.c
source4/lib/util/util.h
source4/lib/util/util_pw.c
source4/lib/util/util_str.c
source4/libcli/libcli.h
source4/nsswitch/wb_common.c
source4/param/loadparm.c
source4/param/share.c
source4/utils/testparm.c

index ba1e6fd0e54fd07f46abdd6ac6412af6db9a557f..1ad5332b28aaf80d1da1fa0ab83f4269dafd717f 100644 (file)
@@ -455,13 +455,14 @@ NTSTATUS auth_register(const struct auth_operations *ops)
                return NT_STATUS_OBJECT_NAME_COLLISION;
        }
 
-       backends = realloc_p(backends, struct auth_backend, num_backends+1);
-       if (!backends) {
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       new_ops = smb_xmemdup(ops, sizeof(*ops));
-       new_ops->name = smb_xstrdup(ops->name);
+       backends = talloc_realloc(talloc_autofree_context(), backends, 
+                                 struct auth_backend, num_backends+1);
+       NT_STATUS_HAVE_NO_MEMORY(backends);
+
+       new_ops = talloc_memdup(backends, ops, sizeof(*ops));
+       NT_STATUS_HAVE_NO_MEMORY(new_ops);
+       new_ops->name = talloc_strdup(new_ops, ops->name);
+       NT_STATUS_HAVE_NO_MEMORY(new_ops->name);
 
        backends[num_backends].ops = new_ops;
 
index 2ad5e3bed089387e5b38c32046d61672df3ed9e8..e398b16d726101b8f331b44281d813628228c001 100644 (file)
@@ -137,7 +137,8 @@ static void messaging_dispatch(struct messaging_context *msg, struct messaging_r
 
        /* temporary IDs use an idtree, the rest use a array of pointers */
        if (rec->header->msg_type >= MSG_TMP_BASE) {
-               d = idr_find(msg->dispatch_tree, rec->header->msg_type);
+               d = (struct dispatch_fn *)idr_find(msg->dispatch_tree, 
+                                                  rec->header->msg_type);
        } else if (rec->header->msg_type < msg->num_types) {
                d = msg->dispatch[rec->header->msg_type];
        } else {
@@ -417,7 +418,8 @@ void messaging_deregister(struct messaging_context *msg, uint32_t msg_type, void
        struct dispatch_fn *d, *next;
 
        if (msg_type >= msg->num_types) {
-               d = idr_find(msg->dispatch_tree, msg_type);
+               d = (struct dispatch_fn *)idr_find(msg->dispatch_tree, 
+                                                  msg_type);
                if (!d) return;
                idr_remove(msg->dispatch_tree, msg_type);
                talloc_free(d);
@@ -666,7 +668,7 @@ static void irpc_handler_reply(struct messaging_context *msg_ctx, struct irpc_me
 {
        struct irpc_request *irpc;
 
-       irpc = idr_find(msg_ctx->idr, m->header.callid);
+       irpc = (struct irpc_request *)idr_find(msg_ctx->idr, m->header.callid);
        if (irpc == NULL) return;
 
        /* parse the reply data */
index 035d556abf0cb7f299713ef2133394cd6ac7ebe7..1a45c0a70a67bbfa6ec2bf1c22e9c0a34f37c754 100644 (file)
@@ -126,7 +126,8 @@ static WERROR local_open_key(TALLOC_CTX *mem_ctx,
 WERROR local_get_predefined_key (const struct registry_context *ctx, 
          uint32_t key_id, struct registry_key **key) 
 {      
-       struct registry_local *rctx = talloc_get_type(ctx, struct registry_local);
+       struct registry_local *rctx = talloc_get_type(ctx, 
+                                                     struct registry_local);
        struct mountpoint *mp;
 
        for (mp = rctx->mountpoints; mp != NULL; mp = mp->next) {
index ccabf4ca072786ca72f392021a30424d70528d69..20bd2fad0dcb0e9bec16094024c1921d4cd4a245 100644 (file)
@@ -211,8 +211,7 @@ _PUBLIC_ WERROR reg_preg_diff_load(int fd, const struct reg_diff_callbacks *call
                        close(fd);
                        return WERR_GENERAL_FAILURE;
                }
-               data.length = length;
-               data.data = talloc_memdup(mem_ctx, buf, length);
+               data = data_blob_talloc(mem_ctx, buf, length);
                
                /* Check if delimiter is in place (whine if it isn't) */
                buf_ptr = buf;
index 0c40773daa68722fa05097863464503af33049d5..17914a8f7cf2af8912bb4279bcef29c2d5b7fef5 100644 (file)
@@ -1664,7 +1664,7 @@ static WERROR regf_set_value(struct hive_key *key, const char *name,
                        DATA_BLOB value_list;
 
                        value_list.length = (nk->num_values+1)*4;
-                       value_list.data = talloc_array(private_data, uint32_t, nk->num_values+1);
+                       value_list.data = (uint8_t *)talloc_array(private_data, uint32_t, nk->num_values+1);
                        W_ERROR_HAVE_NO_MEMORY(value_list.data);
                        memcpy(value_list.data, values.data, nk->num_values * 4);
 
index 8e216b0226b13c6ba9c2200a19951cda3b3f5fa0..73fb0e09668dc90e9e6236c36c702c66222d3305 100644 (file)
@@ -201,11 +201,10 @@ int ms_fnmatch(const char *pattern, const char *string, enum protocol_types prot
                if (pattern[i] == '*' || pattern[i] == '<') count++;
        }
 
-       max_n = talloc_array(NULL, struct max_n, count);
-       if (!max_n) {
+       max_n = talloc_zero_array(NULL, struct max_n, count);
+       if (max_n == NULL) {
                return -1;
        }
-       memset(max_n, 0, sizeof(struct max_n) * count);
 
        ret = ms_fnmatch_core(pattern, string, max_n, strrchr(string, '.'));
 
index a2e09545171e3014e5d1b1550a74536cf7eff0a8..004c453a64a7e5fa120f0199bdda0087a9f4de6b 100644 (file)
@@ -28,7 +28,6 @@
  * @brief Helpful macros
  */
 
-struct substitute_context;
 struct smbsrv_tcon;
 
 extern const char *logfile;
@@ -73,7 +72,7 @@ extern const char *panic_action;
  */
 #define SMB_ASSERT(b) do { if (!(b)) { \
        DEBUG(0,("PANIC: assert failed at %s(%d)\n", __FILE__, __LINE__)); \
-       smb_panic("assert failed"); abort(); }} while (0)
+       smb_panic("assert failed"); }} while (0)
 
 #ifndef SAFE_FREE /* Oh no this is also defined in tdb.h */
 /**
@@ -370,12 +369,6 @@ _PUBLIC_ void hex_encode(const unsigned char *buff_in, size_t len, char **out_he
  */
 _PUBLIC_ char *hex_encode_talloc(TALLOC_CTX *mem_ctx, const unsigned char *buff_in, size_t len);
 
-/**
- Set a string value, deallocating any existing space, and allocing the space
- for the string
-**/
-_PUBLIC_ bool string_set(TALLOC_CTX *mem_ctx, char **dest, const char *src);
-
 /**
  Substitute a string for a pattern in another string. Make sure there is 
  enough room!
@@ -780,8 +773,6 @@ enum protocol_types {
        PROTOCOL_SMB2
 };
 
-
-
 int ms_fnmatch(const char *pattern, const char *string, enum protocol_types protocol);
 
 /** a generic fnmatch function - uses for non-CIFS pattern matching */
@@ -838,6 +829,6 @@ _PUBLIC_ int idr_remove(struct idr_context *idp, int id);
 /**
  Become a daemon, discarding the controlling terminal.
 **/
-_PUBLIC_ void become_daemon(bool Fork);
+_PUBLIC_ void become_daemon(bool fork);
 
 #endif /* _SAMBA_UTIL_H_ */
index 0e0675571ebe79bdff6c5c43a491c56a3dc122a6..11e46ec4e3a48843d3c347781e1606a21a305e08 100644 (file)
 
 #include "includes.h"
 
-static struct passwd *alloc_copy_passwd(const struct passwd *from) 
+static struct passwd *alloc_copy_passwd(TALLOC_CTX *mem_ctx, 
+                                       const struct passwd *from) 
 {
-       struct passwd *ret = smb_xmalloc_p(struct passwd);
-       ZERO_STRUCTP(ret);
-       ret->pw_name = smb_xstrdup(from->pw_name);
-       ret->pw_passwd = smb_xstrdup(from->pw_passwd);
-       ret->pw_uid = from->pw_uid;
-       ret->pw_gid = from->pw_gid;
-       ret->pw_gecos = smb_xstrdup(from->pw_gecos);
-       ret->pw_dir = smb_xstrdup(from->pw_dir);
-       ret->pw_shell = smb_xstrdup(from->pw_shell);
-       return ret;
-}
+       struct passwd *ret = talloc_zero(mem_ctx, struct passwd);
 
-void passwd_free (struct passwd **buf)
-{
-       if (!*buf) {
-               DEBUG(0, ("attempted double-free of allocated passwd\n"));
-               return;
-       }
+       if (ret == NULL)
+               return NULL;
 
-       SAFE_FREE((*buf)->pw_name);
-       SAFE_FREE((*buf)->pw_passwd);
-       SAFE_FREE((*buf)->pw_gecos);
-       SAFE_FREE((*buf)->pw_dir);
-       SAFE_FREE((*buf)->pw_shell);
+       ret->pw_name = talloc_strdup(ret, from->pw_name);
+       ret->pw_passwd = talloc_strdup(ret, from->pw_passwd);
+       ret->pw_uid = from->pw_uid;
+       ret->pw_gid = from->pw_gid;
+       ret->pw_gecos = talloc_strdup(ret, from->pw_gecos);
+       ret->pw_dir = talloc_strdup(ret, from->pw_dir);
+       ret->pw_shell = talloc_strdup(ret, from->pw_shell);
 
-       SAFE_FREE(*buf);
+       return ret;
 }
 
-struct passwd *getpwnam_alloc(const char *name) 
+struct passwd *getpwnam_alloc(TALLOC_CTX *mem_ctx, const char *name) 
 {
        struct passwd *temp;
 
@@ -66,10 +55,10 @@ struct passwd *getpwnam_alloc(const char *name)
                return NULL;
        }
 
-       return alloc_copy_passwd(temp);
+       return alloc_copy_passwd(mem_ctx, temp);
 }
 
-struct passwd *getpwuid_alloc(uid_t uid) 
+struct passwd *getpwuid_alloc(TALLOC_CTX *mem_ctx, uid_t uid) 
 {
        struct passwd *temp;
 
@@ -84,5 +73,5 @@ struct passwd *getpwuid_alloc(uid_t uid)
                return NULL;
        }
 
-       return alloc_copy_passwd(temp);
+       return alloc_copy_passwd(mem_ctx, temp);
 }
index 4bec469f872191ad54ccbdbe935e783ab46d31af..0f1f2d5a1c180555669072ab89cdf73200a0390e 100644 (file)
@@ -259,26 +259,6 @@ _PUBLIC_ char *hex_encode_talloc(TALLOC_CTX *mem_ctx, const unsigned char *buff_
        return hex_buffer;
 }
 
-/**
- Set a string value, deallocating any existing space, and allocing the space
- for the string
-**/
-_PUBLIC_ bool string_set(TALLOC_CTX *mem_ctx, char **dest, const char *src)
-{
-       talloc_free(*dest);
-
-       if (src == NULL) 
-               src = "";
-
-       *dest = talloc_strdup(mem_ctx, src);
-       if ((*dest) == NULL) {
-               DEBUG(0,("Out of memory in string_init\n"));
-               return false;
-       }
-
-       return true;
-}
-
 /**
  Substitute a string for a pattern in another string. Make sure there is 
  enough room!
index 1d573cadded225dfde62de0ce4fd277bce49f411..163852d90ac96abf682c190a6a135168a6e31f48 100644 (file)
@@ -23,6 +23,8 @@
 
 #include "librpc/gen_ndr/nbt.h"
 
+struct substitute_context;
+
 /* 
    smbcli_state: internal state used in libcli library for single-threaded callers, 
    i.e. a single session on a single socket. 
index e8ea31db0fc9d2b3c46106ff94c985ae71dc131f..101659380c332f6e6080a3c0fca1fd0876220397 100644 (file)
@@ -613,13 +613,13 @@ NSS_STATUS winbindd_request(int req_type,
  enable them
  ************************************************************************/
  
-BOOL winbind_off( void )
+bool winbind_off( void )
 {
        setenv(WINBINDD_DONT_ENV, "1", 1);
        return True;
 }
 
-BOOL winbind_on( void )
+bool winbind_on( void )
 {
        setenv(WINBINDD_DONT_ENV, "0", 1);
        return True;
index 2dbf7cd60ad07593a59bbbb2e51861d9cbb8a054..f5c0ba51eb195e20b3d07550c140cbd40a5b7067 100644 (file)
@@ -1030,6 +1030,28 @@ static struct loadparm_service *init_service(TALLOC_CTX *mem_ctx)
        return pservice;
 }
 
+/**
+ Set a string value, deallocating any existing space, and allocing the space
+ for the string
+**/
+static bool string_set(TALLOC_CTX *mem_ctx, char **dest, const char *src)
+{
+       talloc_free(*dest);
+
+       if (src == NULL) 
+               src = "";
+
+       *dest = talloc_strdup(mem_ctx, src);
+       if ((*dest) == NULL) {
+               DEBUG(0,("Out of memory in string_init\n"));
+               return false;
+       }
+
+       return true;
+}
+
+
+
 /***************************************************************************
  Add a new service to the services array initialising it with the given 
  service. 
@@ -2495,20 +2517,22 @@ bool lp_load(void)
  Return the max number of services.
 ***************************************************************************/
 
-int lp_numservices(struct loadparm_context *lp_ctx)
+int lp_numservices(void)
 {
-       return lp_ctx->iNumServices;
+       return loadparm.iNumServices;
 }
 
 /***************************************************************************
 Display the contents of the services array in human-readable form.
 ***************************************************************************/
 
-void lp_dump(FILE *f, bool show_defaults, int maxtoprint, 
-            struct loadparm_context *lp_ctx)
+void lp_dump(FILE *f, bool show_defaults, int maxtoprint)
 {
+       struct loadparm_context *lp_ctx;
        int iService;
 
+       lp_ctx = &loadparm;
+
        if (show_defaults)
                defaults_saved = false;
 
index e7c00f5b350f5c417fdcc5c8eb68fddf70540e81..abc5e2ebebb13fcd098c586e160276e0d659ab52 100644 (file)
@@ -116,12 +116,7 @@ NTSTATUS share_register(const struct share_ops *ops)
                smb_panic("out of memory in share_register");
        }
 
-       backends[i] = malloc(sizeof(struct share_ops));
-       if (!backends[i]) {
-               smb_panic("out of memory in share_register");
-       }
-
-       backends[i] = smb_xmemdup(ops, sizeof(*ops));
+       backends[i] = (struct share_ops *)smb_xmemdup(ops, sizeof(*ops));
        backends[i]->name = smb_xstrdup(ops->name);
 
        backends[i + 1] = NULL;
index 08d4ecb1a7e25e8c98279294f37101e67dc62b9b..d884adc7f63a80dd6b74528abd3d1095b9766cdb 100644 (file)
@@ -151,7 +151,7 @@ static int do_global_checks(void)
        ret = do_global_checks();
 
        for (s=0;s<lp_numservices();s++) {
-               struct service *service = lp_servicebynum(s);
+               struct loadparm_service *service = lp_servicebynum(s);
                if (service != NULL)
                        if (strlen(lp_servicename(lp_servicebynum(s))) > 12) {
                                fprintf(stderr, "WARNING: You have some share names that are longer than 12 characters.\n" );
@@ -162,7 +162,7 @@ static int do_global_checks(void)
        }
 
        for (s=0;s<lp_numservices();s++) {
-               struct service *service = lp_servicebynum(s);
+               struct loadparm_service *service = lp_servicebynum(s);
                if (service != NULL) {
                        const char **deny_list = lp_hostsdeny(service);
                        const char **allow_list = lp_hostsallow(service);
@@ -199,7 +199,7 @@ static int do_global_checks(void)
                        getc(stdin);
                }
                if (section_name || parameter_name) {
-                       struct service *service = NULL;
+                       struct loadparm_service *service = NULL;
                        if (!section_name) {
                                section_name = GLOBAL_NAME;
                                service = NULL;
@@ -223,7 +223,7 @@ static int do_global_checks(void)
        if(cname && caddr){
                /* this is totally ugly, a real `quick' hack */
                for (s=0;s<lp_numservices();s++) {
-                       struct service *service = lp_servicebynum(s);
+                       struct loadparm_service *service = lp_servicebynum(s);
                        if (service != NULL) {
                                if (allow_access(NULL, lp_hostsdeny(NULL), lp_hostsallow(NULL), cname, caddr)
                                    && allow_access(NULL, lp_hostsdeny(service), lp_hostsallow(service), cname, caddr)) {