summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBron Gondwana <brong@fastmail.fm>2019-08-07 17:07:13 +1000
committerAllen Winter <allen.winter@kdab.com>2019-08-07 09:12:01 -0400
commitbfdb2da7100087b75fbde502a4dd84fa330af83d (patch)
treec342189ca43e7bb63ac032d7264c83ebd0422dcf
parent6ea0dcb6874cc32f91495e47b27962d0129937ac (diff)
downloadlibical-git-bfdb2da7100087b75fbde502a4dd84fa330af83d.tar.gz
icalproperty_normalize: don't leak memory
-rw-r--r--src/libical/icalproperty.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libical/icalproperty.c b/src/libical/icalproperty.c
index 64b50268..4c683326 100644
--- a/src/libical/icalproperty.c
+++ b/src/libical/icalproperty.c
@@ -974,6 +974,7 @@ void icalproperty_normalize(icalproperty *prop)
switch (prop_kind) {
case ICAL_ATTACH_PROPERTY:
if (icalparameter_get_value(param) == ICAL_VALUE_URI) {
+ icalparameter_free(param);
continue;
}
break;
@@ -985,12 +986,14 @@ void icalproperty_normalize(icalproperty *prop)
case ICAL_RDATE_PROPERTY:
case ICAL_RECURRENCEID_PROPERTY:
if (icalparameter_get_value(param) == ICAL_VALUE_DATETIME) {
+ icalparameter_free(param);
continue;
}
break;
case ICAL_DURATION_PROPERTY:
if (icalparameter_get_value(param) == ICAL_VALUE_DURATION) {
+ icalparameter_free(param);
continue;
}
break;
@@ -1002,54 +1005,63 @@ void icalproperty_normalize(icalproperty *prop)
case ICAL_CUTYPE_PARAMETER:
if (icalparameter_get_cutype(param) == ICAL_CUTYPE_INDIVIDUAL) {
+ icalparameter_free(param);
continue;
}
break;
case ICAL_ENCODING_PARAMETER:
if (icalparameter_get_encoding(param) == ICAL_ENCODING_8BIT) {
+ icalparameter_free(param);
continue;
}
break;
case ICAL_FBTYPE_PARAMETER:
if (icalparameter_get_fbtype(param) == ICAL_FBTYPE_BUSY) {
+ icalparameter_free(param);
continue;
}
break;
case ICAL_PARTSTAT_PARAMETER:
if (icalparameter_get_partstat(param) == ICAL_PARTSTAT_NEEDSACTION) {
+ icalparameter_free(param);
continue;
}
break;
case ICAL_RELATED_PARAMETER:
if (icalparameter_get_related(param) == ICAL_RELATED_START) {
+ icalparameter_free(param);
continue;
}
break;
case ICAL_RELTYPE_PARAMETER:
if (icalparameter_get_reltype(param) == ICAL_RELTYPE_PARENT) {
+ icalparameter_free(param);
continue;
}
break;
case ICAL_ROLE_PARAMETER:
if (icalparameter_get_role(param) == ICAL_ROLE_REQPARTICIPANT) {
+ icalparameter_free(param);
continue;
}
break;
case ICAL_RSVP_PARAMETER:
if (icalparameter_get_rsvp(param) == ICAL_RSVP_FALSE) {
+ icalparameter_free(param);
continue;
}
break;
case ICAL_SCHEDULEAGENT_PARAMETER:
if (icalparameter_get_scheduleagent(param) == ICAL_SCHEDULEAGENT_SERVER) {
+ icalparameter_free(param);
continue;
}
break;