diff options
author | Milan Crha <mcrha@redhat.com> | 2011-08-18 23:30:19 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2011-08-18 23:30:19 +0800 |
commit | 213bb761b1cddb18840e9c9a3150a57af503568d (patch) | |
tree | b23163a46d197d74d69e7401267f7bcfbadc9a75 | |
parent | ccbe39a7cbd755fddc4bbbc0cef9b5585634a9b7 (diff) | |
download | gsoc2013-evolution-213bb761b1cddb18840e9c9a3150a57af503568d.tar gsoc2013-evolution-213bb761b1cddb18840e9c9a3150a57af503568d.tar.gz gsoc2013-evolution-213bb761b1cddb18840e9c9a3150a57af503568d.tar.bz2 gsoc2013-evolution-213bb761b1cddb18840e9c9a3150a57af503568d.tar.lz gsoc2013-evolution-213bb761b1cddb18840e9c9a3150a57af503568d.tar.xz gsoc2013-evolution-213bb761b1cddb18840e9c9a3150a57af503568d.tar.zst gsoc2013-evolution-213bb761b1cddb18840e9c9a3150a57af503568d.zip |
Bug #656810 - Too strict checking for validity of received calendars
-rw-r--r-- | calendar/gui/itip-utils.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/calendar/gui/itip-utils.c b/calendar/gui/itip-utils.c index 6163d59fae..b59cb9f384 100644 --- a/calendar/gui/itip-utils.c +++ b/calendar/gui/itip-utils.c @@ -1906,8 +1906,22 @@ check_time (const struct icaltimetype tmval, gboolean can_null_time) gboolean is_icalcomp_valid (icalcomponent *icalcomp) { - return icalcomp && - icalcomponent_is_valid (icalcomp) && - check_time (icalcomponent_get_dtstart (icalcomp), FALSE) && - check_time (icalcomponent_get_dtend (icalcomp), TRUE); + if (!icalcomp || !icalcomponent_is_valid (icalcomp)) + return FALSE; + + switch (icalcomponent_isa (icalcomp)) { + case ICAL_VEVENT_COMPONENT: + return check_time (icalcomponent_get_dtstart (icalcomp), FALSE) && + check_time (icalcomponent_get_dtend (icalcomp), TRUE); + case ICAL_VTODO_COMPONENT: + return check_time (icalcomponent_get_dtstart (icalcomp), TRUE) && + check_time (icalcomponent_get_due (icalcomp), TRUE); + case ICAL_VJOURNAL_COMPONENT: + return check_time (icalcomponent_get_dtstart (icalcomp), TRUE) && + check_time (icalcomponent_get_dtend (icalcomp), TRUE); + default: + break; + } + + return TRUE; } |