]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbdotconf: mark "passwd program" with substitution="1"
authorRalph Boehme <slow@samba.org>
Mon, 18 Nov 2019 17:28:27 +0000 (18:28 +0100)
committerStefan Metzmacher <metze@samba.org>
Wed, 27 Nov 2019 10:25:35 +0000 (10:25 +0000)
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
docs-xml/smbdotconf/security/passwdprogram.xml
source3/rpc_server/samr/srv_samr_chgpasswd.c
source3/utils/testparm.c

index 81410489b01ef3ac8533a7286993e9889a595c18..e12cc8e2d8ca70f3d925cf9b54462c33059e5e19 100644 (file)
@@ -1,6 +1,7 @@
 <samba:parameter name="passwd program"
                  context="G"
                  type="string"
+                 substitution="1"
                  xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
  <description>
     <para>The name of a program that can be used to set 
index 995b03c99836084355083e5a092c71489b8e66f0..37f6a837f9504ef7e4acc50228ebb7d05b6dff6e 100644 (file)
@@ -594,7 +594,7 @@ bool chgpasswd(const char *name, const char *rhost, const struct passwd *pass,
                return false;
        }
 
-       passwordprogram = lp_passwd_program(ctx);
+       passwordprogram = lp_passwd_program(ctx, lp_sub);
        if (!passwordprogram || !*passwordprogram) {
                DEBUG(2, ("chgpasswd: Null password program - no password changing\n"));
                return false;
index 42316e5b11db1d83b679eb7205607164c529d6b9..264eea1916c8524765577ba6fbf55f4e0c5ce658 100644 (file)
@@ -375,8 +375,8 @@ static int do_global_checks(void)
                if (!lp_pam_password_change()) {
 #endif
 
-                       if((lp_passwd_program(talloc_tos()) == NULL) ||
-                          (strlen(lp_passwd_program(talloc_tos())) == 0))
+                       if((lp_passwd_program(talloc_tos(), lp_sub) == NULL) ||
+                          (strlen(lp_passwd_program(talloc_tos(), lp_sub)) == 0))
                        {
                                fprintf(stderr,
                                        "ERROR: the 'unix password sync' "
@@ -388,7 +388,7 @@ static int do_global_checks(void)
                                char *truncated_prog = NULL;
                                const char *p;
 
-                               passwd_prog = lp_passwd_program(talloc_tos());
+                               passwd_prog = lp_passwd_program(talloc_tos(), lp_sub);
                                p = passwd_prog;
                                next_token_talloc(talloc_tos(),
                                                &p,
@@ -417,15 +417,15 @@ static int do_global_checks(void)
                        ret = 1;
                }
 
-               if ((lp_passwd_program(talloc_tos()) != NULL) &&
-                   (strlen(lp_passwd_program(talloc_tos())) > 0))
+               if ((lp_passwd_program(talloc_tos(), lp_sub) != NULL) &&
+                   (strlen(lp_passwd_program(talloc_tos(), lp_sub)) > 0))
                {
                        /* check if there's a %u parameter present */
-                       if(strstr_m(lp_passwd_program(talloc_tos()), "%u") == NULL) {
+                       if(strstr_m(lp_passwd_program(talloc_tos(), lp_sub), "%u") == NULL) {
                                fprintf(stderr,
                                        "ERROR: the 'passwd program' (%s) "
                                        "requires a '%%u' parameter.\n\n",
-                                       lp_passwd_program(talloc_tos()));
+                                       lp_passwd_program(talloc_tos(), lp_sub));
                                ret = 1;
                        }
                }