[PATCH 24/37] param: Ensure the correct mem context is always being used from s3

abartlet at samba.org abartlet at samba.org
Fri Jun 20 05:47:46 MDT 2014


From: Garming Sam <garming at catalyst.net.nz>

Signed-off-by: Garming Sam <garming at catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Change-Id: I7b93822d0d06b00f08fecc2e55778767dd785b91
---
 lib/param/loadparm.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c
index 0ee6e17..32b4c11 100644
--- a/lib/param/loadparm.c
+++ b/lib/param/loadparm.c
@@ -1386,7 +1386,14 @@ static bool lp_do_parameter_parametric(struct loadparm_context *lp_ctx,
 
 	if (service == NULL) {
 		data = &lp_ctx->globals->param_opt;
-		mem_ctx = lp_ctx->globals;
+		/**
+		 * s3 code cannot deal with parametric options stored on the globals ctx.
+		 */
+		if (lp_ctx->s3_fns != NULL) {
+			mem_ctx = NULL;
+		} else {
+			mem_ctx = lp_ctx->globals->ctx;
+		}
 	} else {
 		data = &service->param_opt;
 		mem_ctx = service;
@@ -1591,7 +1598,7 @@ bool lpcfg_do_global_parameter(struct loadparm_context *lp_ctx,
 
 	parm_ptr = lpcfg_parm_ptr(lp_ctx, NULL, &parm_table[parmnum]);
 
-	return set_variable(lp_ctx->globals, parmnum, parm_ptr,
+	return set_variable(lp_ctx->globals->ctx, parmnum, parm_ptr,
 			    pszParmName, pszParmValue, lp_ctx, true);
 }
 
-- 
1.9.3



More information about the samba-technical mailing list