Package: squirrelmail
Version: 2:1.4.20~rc2-1
Severity: important
Tags: patch
There is a bug in the release candidate version of SquirrelMail
currently in Debian. This bug breaks search capability against Cyrus
2.2 (the Debian version also).
The bug report on the SM side is at:
---
http://sourceforge.net/tracker/index.php?func=detail&aid=2846511&group_id=311&atid=100311
The comments of that bug point to a discussion on the mailing
list which includes a patch for this behavior.
---
http://marc.info/?l=squirrelmail-devel&m=125074103915554&w=2
And the patch itself is at:
---
http://netdork.net/imapsearch_fix.patch
I'm including that patch file in this bug report. Please
consider including it in the Debian package until this is fixed with a
newer version of upstream.
-- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (650, 'testing'), (600, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.30-2-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/bash
Versions of packages squirrelmail depends on:
ii apache2-mpm-itk [httpd] 2.2.14-1 multiuser MPM for Apache 2.2
ii libapache2-mod-php5 5.2.11.dfsg.1-1 server-side, HTML-embedded scripti
ii perl 5.10.0-25 Larry Wall's Practical Extraction
ii php5 5.2.11.dfsg.1-1 server-side, HTML-embedded scripti
Versions of packages squirrelmail recommends:
ii aspell [aspell-bin] 0.60.6-2 GNU Aspell spell-checker
ii ispell 3.1.20.0-6 International Ispell (an interacti
ii php5-mhash 5.2.11.dfsg.1-1 MHASH module for php5
ii squirrelmail-locales 1.4.18-20090526-1 Translations for the SquirrelMail
ii squirrelmail-viewashtm 3.8-2 SquirrelMail plugin: View mails as
Versions of packages squirrelmail suggests:
ii cyrus-imapd-2.2 [imap-se 2.2.13-16 Cyrus mail system - IMAP support
pn imapproxy <none> (no description available)
ii php-pear 5.2.11.dfsg.1-1 PEAR - PHP Extension and Applicati
ii php5-ldap 5.2.11.dfsg.1-1 LDAP module for php5
ii php5-recode 5.2.11.dfsg.1-1 recode module for php5
pn squirrelmail-decode <none> (no description available)
-- no debconf information
### Eclipse Workspace Patch 1.0
#P SquirrelMail - Stable
Index: functions/imap_search.php
===================================================================
--- functions/imap_search.php (revision 13831)
+++ functions/imap_search.php (working copy)
@@ -46,22 +46,23 @@
on the client side, but should be fixed on the server
as per the RFC */
- if ($imap_server_type == 'macosx' || $imap_server_type == 'hmailserver') {
- foreach ($multi_search as $multi_search_part) {
- if (strtoupper($languages[$squirrelmail_language]['CHARSET']) ==
'ISO-2022-JP') {
- $multi_search_part = mb_convert_encoding($multi_search_part,
'JIS', 'auto');
- }
- $search_string .= $search_where . ' ' .$multi_search_part . ' ';
+ if (strtoupper($languages[$squirrelmail_language]['CHARSET'] ==
'ISO-2022-JP')) {
+ foreach($multi_search as $idx=>$search_part) {
+ $multi_search[$idx] = mb_convert_encoding($search_parth, 'JIS',
'auto');
}
}
+
+ $search_lit = array();
+
+ if ($imap_server_type == 'macosx' || $imap_server_type == 'hmailserver') {
+ $search_string .= $search_where . ' ' . implode(' ', $multi_search);
+ }
else {
- foreach ($multi_search as $multi_search_part) {
- if (strtoupper($languages[$squirrelmail_language]['CHARSET']) ==
'ISO-2022-JP') {
- $multi_search_part = mb_convert_encoding($multi_search_part,
'JIS', 'auto');
- }
- $search_string .= $search_where . ' {' . strlen($multi_search_part)
- . "}\r\n" . $multi_search_part . ' ';
- }
+ $search_string .= $search_where;
+ $search_lit = array(
+ 'command' => '',
+ 'literal_args' => $multi_search
+ );
}
$search_string = trim($search_string);
@@ -76,15 +77,24 @@
$ss = "SEARCH ALL $search_string";
}
- /* read data back from IMAP */
- $readin = sqimap_run_command($imapConnection, $ss, false, $result,
$message, $uid_support);
+ if (empty($search_lit)) {
+ /* read data back from IMAP */
+ $readin = sqimap_run_command($imapConnection, $ss, false, $result,
$message, $uid_support);
+ } else {
+ $search_lit['command'] = $ss;
+ $readin = sqimap_run_literal_command($imapConnection, $search_lit,
false, $result, $message, $uid_support);
+ }
/* try US-ASCII charset if search fails */
if (isset($languages[$squirrelmail_language]['CHARSET'])
&& strtolower($result) == 'no') {
$ss = "SEARCH CHARSET \"US-ASCII\" ALL $search_string";
- $readin = sqimap_run_command ($imapConnection, $ss, true,
- $result, $message, $uid_support);
+ if (empty($search_lit)) {
+ $readin = sqimap_run_command($imapConnection, $ss, false, $result,
$message, $uid_support);
+ } else {
+ $search_lit['command'] = $ss;
+ $readin = sqimap_run_literal_command($imapConnection, $search_lit,
false, $result, $message, $uid_support);
+ }
}
unset($messagelist);