In date_api_ical_build_rrule($form_values) inside date_api_ical.inc, we allow the system to potentially generate:

  • a COUNT inside the rrule even when a count has not been explicitly set
  • a COUNT and an UNTIL

If the user has not provided either a COUNT or an UNTIL date, then neither should be set. A COUNT is not allowed to be left empty, it must have a value or must not be part of the sting. If COUNT is left off and there is no UNTIL, then the RRULE is considered to be forever. If the user has supplied both, it is invalid, and then only one should win out.

This is all per RFC-2445 (4.3.10 Recurrence Rule).

I have marked this as major since it is in clear violation of the specification and is actually breaking integration with other systems.

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

steve.colson’s picture

Status: Active » Needs review
FileSize
1.26 KB

The attached patch addresses the combination of these issues.

Status: Needs review » Needs work

The last submitted patch, 1: date-rrule-building-creates-invalid-syntax-2137757-1.patch, failed testing.

steve.colson’s picture

Status: Needs work » Needs review

Status: Needs review » Needs work

The last submitted patch, 1: date-rrule-building-creates-invalid-syntax-2137757-1.patch, failed testing.

steve.colson’s picture

Status: Needs work » Needs review

Looking at the non-passed tests, I have no idea why the assertFieldByName call is failing, but the supplied patch has nothing to do with the display form. The patch only deals with the creation of the RRULE string that gets stored in the database.

Marking needs reviewed.

Status: Needs review » Needs work

The last submitted patch, 1: date-rrule-building-creates-invalid-syntax-2137757-1.patch, failed testing.

steve.colson’s picture

Status: Needs work » Needs review
FileSize
1.56 KB

Re-rolling against 2.x head

Status: Needs review » Needs work

The last submitted patch, 8: rrule_building_creates-2137757-8.patch, failed testing.