smbdotconf: mark "add share command" with substitution="1"
authorRalph Boehme <slow@samba.org>
Mon, 4 Nov 2019 12:58:28 +0000 (13:58 +0100)
committerStefan Metzmacher <metze@samba.org>
Wed, 27 Nov 2019 10:25:33 +0000 (10:25 +0000)
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
docs-xml/smbdotconf/misc/addsharecommand.xml
source3/rpc_server/srvsvc/srv_srvsvc_nt.c

index 6bbdef6196765541753204aa5d09dbcf03d568db..484b591c439bf78f085c52fa989c64ebccbc7d4f 100644 (file)
@@ -1,6 +1,7 @@
 <samba:parameter name="add share command"
                  context="G"
                  type="string"
+                 substitution="1"
                  xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
 <description>
        <para>
index 65f0f1ffa4762d132d4e2f3bfbe2f8a02456e54e..b3c9211f7a43c531af5636f99264a52b388c05d6 100644 (file)
@@ -1992,6 +1992,8 @@ WERROR _srvsvc_NetShareAdd(struct pipes_struct *p,
        int max_connections = 0;
        SMB_STRUCT_STAT st;
        TALLOC_CTX *ctx = p->mem_ctx;
+       const struct loadparm_substitution *lp_sub =
+               loadparm_s3_global_substitution();
 
        DEBUG(5,("_srvsvc_NetShareAdd: %d\n", __LINE__));
 
@@ -2004,7 +2006,7 @@ WERROR _srvsvc_NetShareAdd(struct pipes_struct *p,
        if (p->session_info->unix_token->uid != sec_initial_uid()  && !is_disk_op )
                return WERR_ACCESS_DENIED;
 
-       if (!lp_add_share_command(talloc_tos()) || !*lp_add_share_command(talloc_tos())) {
+       if (!lp_add_share_command(talloc_tos(), lp_sub) || !*lp_add_share_command(talloc_tos(), lp_sub)) {
                DBG_WARNING("_srvsvc_NetShareAdd: No \"add share command\" parameter set in smb.conf.\n");
                return WERR_ACCESS_DENIED;
        }
@@ -2110,7 +2112,7 @@ WERROR _srvsvc_NetShareAdd(struct pipes_struct *p,
 
        command = talloc_asprintf(ctx,
                        "%s \"%s\" \"%s\" \"%s\" \"%s\" %d",
-                       lp_add_share_command(talloc_tos()),
+                       lp_add_share_command(talloc_tos(), lp_sub),
                        get_dyn_CONFIGFILE(),
                        share_name_in,
                        path,