[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%s\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