diff --git a/src/libical/icalrecur.c b/src/libical/icalrecur.c index dfad192a4..7a3769707 100644 --- a/src/libical/icalrecur.c +++ b/src/libical/icalrecur.c @@ -704,15 +704,9 @@ static void icalrecurrencetype_free(struct icalrecurrencetype *recur) #define SAFEFREE(p) if (p) { icalmemory_free_buffer(p); p = 0; } SAFEFREE(recur->rscale); - SAFEFREE(recur->by[ICAL_BY_SECOND].data); - SAFEFREE(recur->by[ICAL_BY_MINUTE].data); - SAFEFREE(recur->by[ICAL_BY_HOUR].data); - SAFEFREE(recur->by[ICAL_BY_DAY].data); - SAFEFREE(recur->by[ICAL_BY_MONTH_DAY].data); - SAFEFREE(recur->by[ICAL_BY_YEAR_DAY].data); - SAFEFREE(recur->by[ICAL_BY_WEEK_NO].data); - SAFEFREE(recur->by[ICAL_BY_MONTH].data); - SAFEFREE(recur->by[ICAL_BY_SET_POS].data); + for (int i = 0; i < ICAL_BY_NUM_PARTS; i++) { + SAFEFREE(recur->by[i].data); + } #undef SAFEFREE