param: remove fstring from dump_a_parameter
authorGarming Sam <garming@catalyst.net.nz>
Wed, 26 Feb 2014 00:12:35 +0000 (13:12 +1300)
committerJeremy Allison <jra@samba.org>
Wed, 7 May 2014 17:49:17 +0000 (19:49 +0200)
Signed-off-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/param/loadparm.c

index 3ad69d1809e3ec55005f724402addf2c86a6f06f..358e62089e5316daafb8189023aa23e4f320a9f2 100644 (file)
@@ -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 {