diff options
-rw-r--r-- | script/mkparamdefs.pl | 4 | ||||
-rw-r--r-- | source3/param/loadparm.c | 3 |
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)) |