hsz
2015-10-08 ed4f659a76e86271acae4346fd76b80a770398fc
Fixed dovecot and samba encryption - (invalid variables names)
1 files modified
13 ■■■■■ changed files
plugins/password/password.php 13 ●●●●● patch | view | raw | blame | history
plugins/password/password.php
@@ -256,6 +256,7 @@
            $rules = html::tag('ul', array('id' => 'ruleslist'), $rules);
        }
        $disabled_msg = '';
        if ($form_disabled) {
            $disabled_msg = is_string($form_disabled) ? $form_disabled : $this->gettext('disablednotice');
            $disabled_msg = html::div(array('class' => 'boxwarning', 'id' => 'password-notice'), $disabled_msg);
@@ -316,6 +317,7 @@
        $object = new $class;
        $result = $object->save($curpass, $passwd);
        $message = '';
        if (is_array($result)) {
            $message = $result['message'];
@@ -403,6 +405,9 @@
    {
        $method = strtolower($method);
        $rcmail = rcmail::get_instance();
        $prefix = '';
        $crypted = '';
        $default = false;
        if (empty($method) || $method == 'default') {
            $method   = $rcmail->config->get('password_algorithm');
@@ -547,7 +552,7 @@
        case 'samba':
            if (function_exists('hash')) {
                $crypted = hash('md4', rcube_charset::convert($password, RCUBE_CHARSET, 'UTF-16LE'));
                $crypted = strtoupper($crypted_password);
                $crypted = strtoupper($crypted);
            }
            else {
                rcube::raise_error(array(
@@ -585,14 +590,14 @@
                return false;
            }
            else {
                fwrite($pipe, $passwd . "\n", 1+strlen($passwd)); usleep(1000);
                fwrite($pipe, $passwd . "\n", 1+strlen($passwd));
                fwrite($pipe, $password . "\n", 1+strlen($password)); usleep(1000);
                fwrite($pipe, $password . "\n", 1+strlen($password));
                pclose($pipe);
                $crypted = trim(file_get_contents($tmpfile), "\n");
                unlink($tmpfile);
                if (!preg_match('/^\{' . $method . '\}/', $newpass)) {
                if (!preg_match('/^\{' . $method . '\}/', $crypted)) {
                    return false;
                }