Aleksander Machniak
2013-03-02 e0d4662523cde95c89d5374bf5eba70738606d1c
Use rcube_utils::parse_host() for host config in smb driver (#1488784)
2 files modified
16 ■■■■■ changed files
plugins/password/config.inc.php.dist 4 ●●●● patch | view | raw | blame | history
plugins/password/drivers/smb.php 12 ●●●●● patch | view | raw | blame | history
plugins/password/config.inc.php.dist
@@ -357,6 +357,10 @@
// smb Driver options
// ---------------------
// Samba host (default: localhost)
// Supported replacement variables:
// %n - hostname ($_SERVER['SERVER_NAME'])
// %t - hostname without the first part
// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
$rcmail_config['password_smb_host'] = 'localhost';
// Location of smbpasswd binary
$rcmail_config['password_smb_cmd'] = '/usr/bin/smbpasswd';
plugins/password/drivers/smb.php
@@ -26,13 +26,15 @@
    public function save($currpass, $newpass)
    {
        $host = rcmail::get_instance()->config->get('password_smb_host','localhost');
        $bin = rcmail::get_instance()->config->get('password_smb_cmd','/usr/bin/smbpasswd');
        $host     = rcmail::get_instance()->config->get('password_smb_host','localhost');
        $bin      = rcmail::get_instance()->config->get('password_smb_cmd','/usr/bin/smbpasswd');
        $username = $_SESSION['username'];
        $tmpfile = tempnam(sys_get_temp_dir(),'smb');
        $cmd = $bin . ' -r ' . $host . ' -s -U "' . $username . '" > ' . $tmpfile . ' 2>&1';
        $handle = @popen($cmd, 'w');
        $host     = rcube_utils::parse_host($host);
        $tmpfile  = tempnam(sys_get_temp_dir(),'smb');
        $cmd      = $bin . ' -r ' . $host . ' -s -U "' . $username . '" > ' . $tmpfile . ' 2>&1';
        $handle   = @popen($cmd, 'w');
        fputs($handle, $currpass."\n");
        fputs($handle, $newpass."\n");
        fputs($handle, $newpass."\n");