[evolution-mapi] Fix for RRULE bin parsing for recurrences with modifications



commit f36cca5d32ce87a53684d950d53da75e266553ff
Author: Sean Finney <seanius seanius net>
Date:   Thu Feb 10 11:08:10 2011 +0100

    Fix for RRULE bin parsing for recurrences with modifications
    
    This is an additional fix for Bug #604029
    
    This patch fixes some incorrect parsing that would cause
    exchange_mapi_cal_util_bin_to_rrule() to incorrectly discard RRULE
    information when processing a recurrence containing modified
    instances.
    
    Note that this does *not* include a fix to actually parse the modified
    instances, which after some analysis will be fairly complicated to do and
    thus saved for a later point in time.
    
    The resulting behavior from this patch is that the recurrence will show
    in the calendar, with exception dates for the modified instances, but no
    corresponding events (i.e. the modified instances will be missing).

 .../exchange-mapi-cal-recur-utils.c                |   19 +++++--------------
 1 files changed, 5 insertions(+), 14 deletions(-)
---
diff --git a/src/libexchangemapi/exchange-mapi-cal-recur-utils.c b/src/libexchangemapi/exchange-mapi-cal-recur-utils.c
index c607b78..452a235 100644
--- a/src/libexchangemapi/exchange-mapi-cal-recur-utils.c
+++ b/src/libexchangemapi/exchange-mapi-cal-recur-utils.c
@@ -672,20 +672,11 @@ exchange_mapi_cal_util_bin_to_rrule (GByteArray *ba, ECalComponent *comp)
 	/* modified exceptions */
 	flag16 = *((guint16 *)ptr);
 	ptr += sizeof (guint16);
-	if (flag16 != 0x0)
-		return FALSE;
-
-	/* reserved block1 size - has to be 0 */
-	flag32 = *((guint32 *)ptr);
-	ptr += sizeof (guint32);
-	if (flag32 != 0x0)
-		return FALSE;
-
-	/* reserved block2 size - has to be 0 */
-	flag32 = *((guint32 *)ptr);
-	ptr += sizeof (guint32);
-	if (flag32 != 0x0)
-		return FALSE;
+    /* FIXME: there are flag16 count modified exceptions here, which
+              are variable in size, followed by a ReservedBlock1{Size,}
+              and ReservedBlock2{Size,}.  However, since we have nothing 
+              else to do until we are able to parse these modified
+              instances, we just stop now. */
 
 	/* Set the recurrence */
 	{



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]