summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--script/mkparamdefs.pl4
-rw-r--r--source3/param/loadparm.c3
2 files changed, 6 insertions, 1 deletions
diff --git a/script/mkparamdefs.pl b/script/mkparamdefs.pl
index b489cc9277..6b59230b24 100644
--- a/script/mkparamdefs.pl
+++ b/script/mkparamdefs.pl
@@ -91,12 +91,14 @@ $file->("/* This file was automatically generated by mkparamdefs.pl. DO NOT EDIT
$file->(" * This structure describes global (ie., server-wide) parameters.\n");
$file->(" */\n");
$file->("struct loadparm_global \n");
+ $file->("{\n");
+ $file->("\tTALLOC_CTX *ctx; /* Context for talloced members */\n");
} elsif ($generate_scope eq "LOCAL") {
$file->(" * This structure describes a single service.\n");
$file->(" */\n");
$file->("struct loadparm_service \n");
+ $file->("{\n");
}
-$file->("{\n");
}
sub print_footer($$$)
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index 1b766c3c46..1cbac61fcc 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -593,6 +593,7 @@ static void free_global_parameters(void)
{
free_param_opts(&Globals.param_opt);
free_parameters_by_snum(GLOBAL_SECTION_SNUM);
+ TALLOC_FREE(Globals.ctx);
}
static int map_parameter(const char *pszParmName);
@@ -690,6 +691,8 @@ static void init_globals(bool reinit_globals)
* table once the defaults are set */
ZERO_STRUCT(Globals);
+ Globals.ctx = talloc_new(NULL);
+
for (i = 0; parm_table[i].label; i++) {
if ((parm_table[i].type == P_STRING ||
parm_table[i].type == P_USTRING))