return join(":", @u)."\n";
}
-# set_password(user, password)
+# set_password(user, password, [&output])
# Changes the password of a user in the encrypted password file
sub set_password
{
local $qp = quotemeta($_[1]);
if ($samba_version >= 2) {
local $passin = "$_[1]\n$_[1]\n";
- local $ex = &execute_command("$config{'samba_password_program'} -c $config{'smb_conf'} -s $qu", \$passin, undef, undef);
+ local $ex = &execute_command("$config{'samba_password_program'} -c $config{'smb_conf'} -s $qu", \$passin, $_[1], $_[1]);
if ($ex) {
# Try without -c
- $rv = &execute_command("$config{'samba_password_program'} -s $qu", \$passin, undef, undef);
+ ${$_[1]} = '' if ($_[1]);
+ $rv = &execute_command("$config{'samba_password_program'} -s $qu", \$passin, $_[1], $_[1]);
}
unlink($temp);
return !$rv;
else {
local $out;
&execute_command("$config{'samba_password_program'} $qu $qp",
- undef, \$out, \$out);
+ undef, $_[1], $_[1]);
return $out =~ /changed/i;
}
}
# Call password change program if necessary
if ($set_passwd) {
- &set_password($u->{'name'}, $in{'pass'}) ||
- &error(&text('saveuser_pass', $error));
+ &set_password($u->{'name'}, $in{'pass'}, \$err) ||
+ &error(&text('saveuser_pass', $err));
}
&unlock_file($config{'smb_passwd'});
&webmin_log("save", "euser", $u->{'name'}, $u);