summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2010-11-03 20:57:38 +1100
committerAndrew Tridgell <tridge@samba.org>2010-11-03 10:40:52 +0000
commita12c3305b328d653a19cb17fcf1d47e3ab9b0898 (patch)
tree0a91d49318bce9790e14f95f293845bc11d72bd2
parent6614f847e06551b08f59106352df02c5d13ff23a (diff)
downloadsamba-a12c3305b328d653a19cb17fcf1d47e3ab9b0898.tar.gz
samba-a12c3305b328d653a19cb17fcf1d47e3ab9b0898.tar.bz2
samba-a12c3305b328d653a19cb17fcf1d47e3ab9b0898.zip
s4-server: cleanup allocation of process models
Autobuild-User: Andrew Tridgell <tridge@samba.org> Autobuild-Date: Wed Nov 3 10:40:52 UTC 2010 on sn-devel-104
-rw-r--r--source4/smbd/process_model.c14
-rw-r--r--source4/smbd/process_model.h2
2 files changed, 6 insertions, 10 deletions
diff --git a/source4/smbd/process_model.c b/source4/smbd/process_model.c
index 7b18f583a7..af12a7b8cb 100644
--- a/source4/smbd/process_model.c
+++ b/source4/smbd/process_model.c
@@ -24,7 +24,7 @@
/* the list of currently registered process models */
static struct process_model {
- struct model_ops *ops;
+ const struct model_ops *ops;
bool initialised;
} *models = NULL;
static int num_models;
@@ -74,10 +74,8 @@ _PUBLIC_ const struct model_ops *process_model_startup(const char *model)
The 'name' can be later used by other backends to find the operations
structure for this backend.
*/
-_PUBLIC_ NTSTATUS register_process_model(const void *_ops)
+_PUBLIC_ NTSTATUS register_process_model(const struct model_ops *ops)
{
- const struct model_ops *ops = _ops;
-
if (process_model_byname(ops->name) != NULL) {
/* its already registered! */
DEBUG(0,("PROCESS_MODEL '%s' already registered\n",
@@ -85,19 +83,17 @@ _PUBLIC_ NTSTATUS register_process_model(const void *_ops)
return NT_STATUS_OBJECT_NAME_COLLISION;
}
- models = realloc_p(models, struct process_model, num_models+1);
+ models = talloc_realloc(NULL, models, struct process_model, num_models+1);
if (!models) {
smb_panic("out of memory in register_process_model");
}
- models[num_models].ops = smb_xmemdup(ops, sizeof(*ops));
- models[num_models].ops->name = smb_xstrdup(ops->name);
+ models[num_models].ops = ops;
models[num_models].initialised = false;
num_models++;
- DEBUG(3,("PROCESS_MODEL '%s' registered\n",
- ops->name));
+ DEBUG(3,("PROCESS_MODEL '%s' registered\n", ops->name));
return NT_STATUS_OK;
}
diff --git a/source4/smbd/process_model.h b/source4/smbd/process_model.h
index b5790316ec..4399d3689f 100644
--- a/source4/smbd/process_model.h
+++ b/source4/smbd/process_model.h
@@ -80,7 +80,7 @@ struct process_model_critical_sizes {
extern const struct model_ops single_ops;
const struct model_ops *process_model_startup(const char *model);
-NTSTATUS register_process_model(const void *_ops);
+NTSTATUS register_process_model(const struct model_ops *ops);
NTSTATUS process_model_init(struct loadparm_context *lp_ctx);
#endif /* __PROCESS_MODEL_H__ */