diff options
author | Andrew Tridgell <tridge@samba.org> | 2010-11-03 20:57:38 +1100 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2010-11-03 10:40:52 +0000 |
commit | a12c3305b328d653a19cb17fcf1d47e3ab9b0898 (patch) | |
tree | 0a91d49318bce9790e14f95f293845bc11d72bd2 /source4/smbd | |
parent | 6614f847e06551b08f59106352df02c5d13ff23a (diff) | |
download | samba-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
Diffstat (limited to 'source4/smbd')
-rw-r--r-- | source4/smbd/process_model.c | 14 | ||||
-rw-r--r-- | source4/smbd/process_model.h | 2 |
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__ */ |