[Pkg-citadel-commit] r175 - in citadel/trunk/debian: . patches
dothebart-guest at alioth.debian.org
dothebart-guest at alioth.debian.org
Wed Nov 5 18:46:23 UTC 2008
Author: dothebart-guest
Date: 2008-11-05 18:46:23 +0000 (Wed, 05 Nov 2008)
New Revision: 175
Added:
citadel/trunk/debian/patches/r6718_fix_sieve_header_hickup.diff
Modified:
citadel/trunk/debian/changelog
citadel/trunk/debian/patches/series
Log:
* * [r6718] add upstream prepatch; long to: headerlines would choke sieve on parsing
Modified: citadel/trunk/debian/changelog
===================================================================
--- citadel/trunk/debian/changelog 2008-10-30 11:01:29 UTC (rev 174)
+++ citadel/trunk/debian/changelog 2008-11-05 18:46:23 UTC (rev 175)
@@ -1,6 +1,7 @@
citadel (7.38-1) unstable; urgency=high
[ Wilfried Goesgens ]
+ * [r6718] add upstream prepatch; long to: headerlines would choke sieve on parsing
* [r6609] add upsttream prepatch; CtdlSetSeen() where if the target room
was not the currently selected room, the list of seen/unseen
or answered/unanswered messages could become corrupted.
Added: citadel/trunk/debian/patches/r6718_fix_sieve_header_hickup.diff
===================================================================
--- citadel/trunk/debian/patches/r6718_fix_sieve_header_hickup.diff (rev 0)
+++ citadel/trunk/debian/patches/r6718_fix_sieve_header_hickup.diff 2008-11-05 18:46:23 UTC (rev 175)
@@ -0,0 +1,79 @@
+Index: msgbase.c
+===================================================================
+--- msgbase.c (revision 6717)
++++ msgbase.c (revision 6718)
+@@ -1593,6 +1593,31 @@
+ }
+
+
++/* If the last item in a list of recipients was truncated to a partial address,
++ * remove it completely in order to avoid choking libSieve
++ */
++void sanitize_truncated_recipient(char *str)
++{
++ if (!str) return;
++ if (num_tokens(str, ',') < 2) return;
++
++ int len = strlen(str);
++ if (len < 900) return;
++ if (len > 998) str[998] = 0;
++
++ char *cptr = strrchr(str, ',');
++ if (!cptr) return;
++
++ char *lptr = strchr(cptr, '<');
++ char *rptr = strchr(cptr, '>');
++
++ if ( (lptr) && (rptr) && (rptr > lptr) ) return;
++
++ *cptr = 0;
++}
++
++
++
+ /*
+ * Get a message off disk. (returns om_* values found in msgbase.h)
+ */
+@@ -1792,8 +1817,10 @@
+ safestrncpy(suser, mptr, sizeof suser);
+ }
+ else if (i == 'Y') {
+- if ((flags & QP_EADDR) != 0)
++ if ((flags & QP_EADDR) != 0) {
+ mptr = qp_encode_email_addrs(mptr);
++ }
++ sanitize_truncated_recipient(mptr);
+ cprintf("CC: %s%s", mptr, nl);
+ }
+ else if (i == 'P') {
+@@ -1824,13 +1851,16 @@
+ {
+ if (haschar(mptr, '@') == 0)
+ {
++ sanitize_truncated_recipient(mptr);
+ cprintf("To: %s@%s", mptr, config.c_fqdn);
+ cprintf("%s", nl);
+ }
+ else
+ {
+- if ((flags & QP_EADDR) != 0)
++ if ((flags & QP_EADDR) != 0) {
+ mptr = qp_encode_email_addrs(mptr);
++ }
++ sanitize_truncated_recipient(mptr);
+ cprintf("To: %s", mptr);
+ cprintf("%s", nl);
+ }
+Index: modules/sieve/serv_sieve.c
+===================================================================
+--- modules/sieve/serv_sieve.c (revision 6717)
++++ modules/sieve/serv_sieve.c (revision 6718)
+@@ -640,7 +640,7 @@
+ }
+
+
+- CtdlLogPrintf(CTDL_DEBUG, "HEADERS-------\n%s\n", my.rfc822headers);
++ CtdlLogPrintf(CTDL_DEBUG, "HEADERS-------\n[31m%s[0m\n", my.rfc822headers);
+
+ sieve2_setvalue_string(sieve2_context, "allheaders", my.rfc822headers);
+
Modified: citadel/trunk/debian/patches/series
===================================================================
--- citadel/trunk/debian/patches/series 2008-10-30 11:01:29 UTC (rev 174)
+++ citadel/trunk/debian/patches/series 2008-11-05 18:46:23 UTC (rev 175)
@@ -0,0 +1 @@
+r6718_fix_sieve_header_hickup.diff
More information about the Pkg-citadel-commit
mailing list