diff options
Diffstat (limited to 'source3/param/loadparm.c')
-rw-r--r-- | source3/param/loadparm.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index 3ad69d1809..358e62089e 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -3061,14 +3061,24 @@ static void dump_a_service(struct loadparm_service *pService, FILE * f) bool dump_a_parameter(int snum, char *parm_name, FILE * f, bool isGlobal) { bool result = false; - fstring local_parm_name; + char *local_parm_name; char *parm_opt; const char *parm_opt_value; struct loadparm_context *lp_ctx; + lp_ctx = loadparm_init_s3(talloc_tos(), loadparm_s3_helpers()); + if (lp_ctx == NULL) { + return false; + } + /* check for parametrical option */ - fstrcpy( local_parm_name, parm_name); + local_parm_name = talloc_strdup(lp_ctx, parm_name); + if (local_parm_name == NULL) { + TALLOC_FREE(lp_ctx); + return false; + } + parm_opt = strchr( local_parm_name, ':'); if (parm_opt) { @@ -3085,11 +3095,6 @@ bool dump_a_parameter(int snum, char *parm_name, FILE * f, bool isGlobal) return result; } - lp_ctx = loadparm_init_s3(talloc_tos(), loadparm_s3_helpers()); - if (lp_ctx == NULL) { - return false; - } - if (isGlobal) { result = lpcfg_dump_a_parameter(lp_ctx, NULL, parm_name, f); } else { |