Package: squirrelmail
Version: 2:1.4.23~svn20120406-2
Severity: serious
Tags: patch
Justification: 4

Dear Maintainer,
*** Please consider answering these questions, where appropriate ***

When login from squirrelmail to imap server, the server rejects the request due 
to "Unknown user or invalid password".
The reason is that squirrelmail sents incorrect password to the server.
Squirrelmail gets the password through encryption and decryption. In a process 
of decription, squirrelmail drops some characters of the password.

Here is the patch.
*** strings.php.orig    2014-12-09 22:08:47.000000000 +0900
--- strings.php 2014-12-09 22:17:06.000000000 +0900
***************
*** 470,476 ****
  
      $encrypted = base64_decode ($string);
      $decrypted = '';
!     for ($i = 0; $i < strlen ($encrypted); $i++) {
          $decrypted .= chr (ord($encrypted[$i]) ^ ord($pad[$i]));
      }
      return $decrypted;
--- 470,481 ----
  
      $encrypted = base64_decode ($string);
      $decrypted = '';
!     /* The length must be that of before encryption.
!        The original, however, counts that of after encryption. 
!        It is necessary to count the real length here.
!                                       2014-12-09 Tomoo Nomura */
!     for ($i = 0; $i < 100; $i++) {
!         if ( $encrypted[$i] == "" ) break;
          $decrypted .= chr (ord($encrypted[$i]) ^ ord($pad[$i]));
      }
      return $decrypted;



-- System Information:
Debian Release: 7.6
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-4-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages squirrelmail depends on:
ii  apache2                      2.2.22-13+deb7u3
ii  apache2-mpm-prefork [httpd]  2.2.22-13+deb7u3
ii  libapache2-mod-php5          5.4.4-14+deb7u12
ii  perl                         5.14.2-21+deb7u1
ii  php5                         5.4.4-14+deb7u12

Versions of packages squirrelmail recommends:
ii  ispell                    3.3.02-6
ii  php5-common [php5-mhash]  5.4.4-14+deb7u12
ii  squirrelmail-locales      1.4.18-20090526-1
ii  squirrelmail-viewashtml   3.8-3

Versions of packages squirrelmail suggests:
ii  courier-imap [imap-server]  4.10.0-20120615-1
pn  imapproxy                   <none>
pn  php-pear                    <none>
ii  php5-ldap                   5.4.4-14+deb7u12
pn  php5-recode                 <none>
pn  squirrelmail-decode         <none>

-- Configuration Files:
/etc/squirrelmail/filters_setup.php changed:
<?php
/**
 * Message and Spam Filter Plugin - Setup script
 *
 * This plugin filters your inbox into different folders based upon given
 * criteria.  It is most useful for people who are subscibed to mailing lists
 * to help organize their messages.  The argument stands that filtering is
 * not the place of the client, which is why this has been made a plugin for
 * SquirrelMail.  You may be better off using products such as Sieve or
 * Procmail to do your filtering so it happens even when SquirrelMail isn't
 * running.
 *
 * If you need help with this, or see improvements that can be made, please
 * email me directly at the address above.  I definately welcome suggestions
 * and comments.  This plugin, as is the case with all SquirrelMail plugins,
 * is not directly supported by the developers.  Please come to me off the
 * mailing list if you have trouble with it.
 *
 * Also view plugins/README.plugins for more information.
 *
 * @version $Id: setup.php 14248 2012-01-02 00:18:17Z pdontthink $
 * @copyright (c) 1999-2012 The SquirrelMail Project Team
 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
 * @package plugins
 * @subpackage filters
 */
/** SquirrelMail required files. */
require_once(SM_PATH . 'plugins/filters/filters.php');
/**
 * Imap connection control
 *
 * Set this to true if you have problems -- check the README file
 * Note:  This doesn't work all of the time (No idea why)
 *        Seems to be related to UW
 * @global bool $UseSeparateImapConnection
 */
global $UseSeparateImapConnection;
$UseSeparateImapConnection = false;
/**
 * User level spam filters control
 *
 * Set this to false if you do not want the user to be able to enable
 * spam filters
 * @global bool $AllowSpamFilters
 */
global $AllowSpamFilters;
$AllowSpamFilters = true;
/**
 * SpamFilters YourHop Setting
 *
 * Set this to a string containing something unique to the line in the
 * header you want me to find IPs to scan the databases with.  For example,
 * All the email coming IN from the internet to my site has a line in
 * the header that looks like (all on one line):
 * Received: [from usw-sf-list1.sourceforge.net (usw-sf-fw2.sourceforge.net
 *    [216.136.171.252]) by firewall.persistence.com (SYSADMIN-antispam
 *     0.2) with
 * Since this line indicates the FIRST hop the email takes into my network,
 * I set my SpamFilters_YourHop to 'by firewall.persistence.com' but any
 * case-sensitive string will do.  You can set it to something found on
 * every line in the header (like ' ') if you want to scan all IPs in
 * the header (lots of false alarms here tho).
 * @global string $SpamFilters_YourHop
 */
global $SpamFilters_YourHop;
$SpamFilters_YourHop = ' ';
/**
 * Commercial Spam Filters Control
 *
 * Some of the SPAM filters are COMMERCIAL and require a fee. If your users
 * select them and you're not allowed to use them, it will make SPAM filtering
 * very slow. If you don't want them to even be offered to the users, you
 * should set SpamFilters_ShowCommercial to false.
 * @global bool $SpamFilters_ShowCommercial
 */
global $SpamFilters_ShowCommercial;
$SpamFilters_ShowCommercial = false;
/**
 * SpamFiltring Cache
 *
 * A cache of IPs we've already checked or are known bad boys or good boys
 * ie. $SpamFilters_DNScache["210.54.220.18"] = true;
 * would tell filters to not even bother doing the DNS queries for that
 * IP and any email coming from it are SPAM - false would mean that any
 * email coming from it would NOT be SPAM
 * @global array $SpamFilters_DNScache
 */
global $SpamFilters_DNScache;
/**
 * Path to bulkquery program
 *
 * Absolute path to the bulkquery program. Leave blank if you don't have
 * bulkquery compiled, installed, and lwresd running. See the README file
 * in the bulkquery directory for more information on using bulkquery.
 * @global string $SpamFilters_BulkQuery
 */
global $SpamFilters_BulkQuery;
$SpamFilters_BulkQuery = '';
/**
 * Shared filtering cache control
 *
 * Do you want to use a shared file for the DNS cache or a session variable?
 * Using a shared file means that every user can benefit from any queries
 * made by other users. The shared file is named "dnscache" and is in the
 * data directory.
 * @global bool $SpamFilters_SharedCache
 */
global $SpamFilters_SharedCache;
$SpamFilters_SharedCache = true;
/**
 * DNS query TTL
 *
 * How long should DNS query results be cached for by default (in seconds)?
 * @global integer $SpamFilters_CacheTTL
 */
global $SpamFilters_CacheTTL;
$SpamFilters_CacheTTL = 7200;
/**
 * Init plugin
 * @access private
 */
function squirrelmail_plugin_init_filters() {
    global $squirrelmail_plugin_hooks;
    if (sqgetGlobalVar('mailbox',$mailbox,SQ_FORM)) {
        sqgetGlobalVar('mailbox',$mailbox,SQ_FORM);
    } else {
        $mailbox = 'INBOX';
    }
    $squirrelmail_plugin_hooks['left_main_before']['filters'] = 'start_filters';
    if (isset($mailbox) && $mailbox == 'INBOX') {
        $squirrelmail_plugin_hooks['right_main_after_header']['filters'] = 
'start_filters';
    }
    $squirrelmail_plugin_hooks['optpage_register_block']['filters'] = 
'filters_optpage_register_block';
    $squirrelmail_plugin_hooks['special_mailbox']['filters'] = 
'filters_special_mailbox';
    $squirrelmail_plugin_hooks['rename_or_delete_folder']['filters'] = 
'update_for_folder';
    $squirrelmail_plugin_hooks['webmail_bottom']['filters'] = 'start_filters';
}
/**
 * Report spam folder as special mailbox
 * @param string $mb variable used by hook
 * @return string spam folder name
 * @access private 
 */
function filters_special_mailbox( $mb ) {
    global $data_dir, $username;
    return( $mb == getPref($data_dir, $username, 'filters_spam_folder', 'na' ) 
);
}
/**
 * Register option blocks
 * @access private
 */
function filters_optpage_register_block() {
    global $optpage_blocks;
    global $AllowSpamFilters;
    $optpage_blocks[] = array(
        'name' => _("Message Filters"),
        'url'  => '../plugins/filters/options.php',
        'desc' => _("Filtering enables messages with different criteria to be 
automatically filtered into different folders for easier organization."),
        'js'   => false
    );
    if ($AllowSpamFilters) {
        $optpage_blocks[] = array(
            'name' => _("SPAM Filters"),
            'url'  => '../plugins/filters/spamoptions.php',
            'desc' => _("SPAM filters allow you to select from various DNS 
based blacklists to detect junk email in your INBOX and move it to another 
folder (like Trash)."),
            'js'   => false
        );
    }
}
?>


-- no debconf information


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to