summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2007-09-09 19:34:30 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 15:05:49 -0500
commit7e297ecfa4db2c7ab720a63c7764bc0e20f8058c (patch)
tree6fdb0b5a3a713c5aab9669ef021456b2063919e6
parent43742e53c900733cf0eff085cb073d0c1c937530 (diff)
downloadsamba-7e297ecfa4db2c7ab720a63c7764bc0e20f8058c.tar.gz
samba-7e297ecfa4db2c7ab720a63c7764bc0e20f8058c.tar.xz
samba-7e297ecfa4db2c7ab720a63c7764bc0e20f8058c.zip
r25047: Fix more warnings.
(This used to be commit 69de86d2d2e49439760fbc61901eb87fb7fc5d55)
-rw-r--r--source4/auth/auth.c15
-rw-r--r--source4/lib/messaging/messaging.c8
-rw-r--r--source4/lib/registry/local.c3
-rw-r--r--source4/lib/registry/patchfile_preg.c3
-rw-r--r--source4/lib/registry/regf.c2
-rw-r--r--source4/lib/util/ms_fnmatch.c5
-rw-r--r--source4/lib/util/util.h13
-rw-r--r--source4/lib/util/util_pw.c45
-rw-r--r--source4/lib/util/util_str.c20
-rw-r--r--source4/libcli/libcli.h2
-rw-r--r--source4/nsswitch/wb_common.c4
-rw-r--r--source4/param/loadparm.c32
-rw-r--r--source4/param/share.c7
-rw-r--r--source4/utils/testparm.c8
14 files changed, 75 insertions, 92 deletions
diff --git a/source4/auth/auth.c b/source4/auth/auth.c
index ba1e6fd0e54..1ad5332b28a 100644
--- a/source4/auth/auth.c
+++ b/source4/auth/auth.c
@@ -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;
diff --git a/source4/lib/messaging/messaging.c b/source4/lib/messaging/messaging.c
index 2ad5e3bed08..e398b16d726 100644
--- a/source4/lib/messaging/messaging.c
+++ b/source4/lib/messaging/messaging.c
@@ -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 */
diff --git a/source4/lib/registry/local.c b/source4/lib/registry/local.c
index 035d556abf0..1a45c0a70a6 100644
--- a/source4/lib/registry/local.c
+++ b/source4/lib/registry/local.c
@@ -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) {
diff --git a/source4/lib/registry/patchfile_preg.c b/source4/lib/registry/patchfile_preg.c
index ccabf4ca072..20bd2fad0dc 100644
--- a/source4/lib/registry/patchfile_preg.c
+++ b/source4/lib/registry/patchfile_preg.c
@@ -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;
diff --git a/source4/lib/registry/regf.c b/source4/lib/registry/regf.c
index 0c40773daa6..17914a8f7cf 100644
--- a/source4/lib/registry/regf.c
+++ b/source4/lib/registry/regf.c
@@ -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);
diff --git a/source4/lib/util/ms_fnmatch.c b/source4/lib/util/ms_fnmatch.c
index 8e216b0226b..73fb0e09668 100644
--- a/source4/lib/util/ms_fnmatch.c
+++ b/source4/lib/util/ms_fnmatch.c
@@ -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, '.'));
diff --git a/source4/lib/util/util.h b/source4/lib/util/util.h
index a2e09545171..004c453a64a 100644
--- a/source4/lib/util/util.h
+++ b/source4/lib/util/util.h
@@ -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 */
/**
@@ -371,12 +370,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_ */
diff --git a/source4/lib/util/util_pw.c b/source4/lib/util/util_pw.c
index 0e0675571eb..11e46ec4e3a 100644
--- a/source4/lib/util/util_pw.c
+++ b/source4/lib/util/util_pw.c
@@ -21,37 +21,26 @@
#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);
}
diff --git a/source4/lib/util/util_str.c b/source4/lib/util/util_str.c
index 4bec469f872..0f1f2d5a1c1 100644
--- a/source4/lib/util/util_str.c
+++ b/source4/lib/util/util_str.c
@@ -260,26 +260,6 @@ _PUBLIC_ char *hex_encode_talloc(TALLOC_CTX *mem_ctx, const unsigned char *buff_
}
/**
- 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!
diff --git a/source4/libcli/libcli.h b/source4/libcli/libcli.h
index 1d573cadded..163852d90ac 100644
--- a/source4/libcli/libcli.h
+++ b/source4/libcli/libcli.h
@@ -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.
diff --git a/source4/nsswitch/wb_common.c b/source4/nsswitch/wb_common.c
index e8ea31db0fc..101659380c3 100644
--- a/source4/nsswitch/wb_common.c
+++ b/source4/nsswitch/wb_common.c
@@ -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;
diff --git a/source4/param/loadparm.c b/source4/param/loadparm.c
index 2dbf7cd60ad..f5c0ba51eb1 100644
--- a/source4/param/loadparm.c
+++ b/source4/param/loadparm.c
@@ -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;
diff --git a/source4/param/share.c b/source4/param/share.c
index e7c00f5b350..abc5e2ebebb 100644
--- a/source4/param/share.c
+++ b/source4/param/share.c
@@ -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;
diff --git a/source4/utils/testparm.c b/source4/utils/testparm.c
index 08d4ecb1a7e..d884adc7f63 100644
--- a/source4/utils/testparm.c
+++ b/source4/utils/testparm.c
@@ -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)) {