summaryrefslogtreecommitdiff
path: root/res/res_calendar_icalendar.c
diff options
context:
space:
mode:
authorMatthew Jordan <mjordan@digium.com>2013-01-30 14:19:29 +0000
committerMatthew Jordan <mjordan@digium.com>2013-01-30 14:19:29 +0000
commit0728c6d7ae603c72b160810ac495783739cee53a (patch)
treea6e9599d3f210a13d448d3816bc9cfbc7c51407d /res/res_calendar_icalendar.c
parent693d609081031d17e57cc2b3ad7408947120dc48 (diff)
Fix memory leak in res_calendar_icalendar
The ICalendar module had a systemic memory leak on each fetch of data from the ICalendar source. The previous fetched data was not being properly disposed. This patch makes it so that before each fetch of data, we dispose of the previously fetched data. (closes issue ASTERISK-21012) Reported by: Joel Vandal Tested by: Joel Vandal ........ Merged revisions 380451 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 380452 from http://svn.asterisk.org/svn/asterisk/branches/11 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@380460 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res/res_calendar_icalendar.c')
-rw-r--r--res/res_calendar_icalendar.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/res/res_calendar_icalendar.c b/res/res_calendar_icalendar.c
index dc7b5f31c..3aea7a463 100644
--- a/res/res_calendar_icalendar.c
+++ b/res/res_calendar_icalendar.c
@@ -468,6 +468,11 @@ static void *ical_load_calendar(void *void_data)
ast_debug(10, "Refreshing after %d minute timeout\n", pvt->owner->refresh);
+ /* Free the old calendar data */
+ if (pvt->data) {
+ icalcomponent_free(pvt->data);
+ pvt->data = NULL;
+ }
if (!(pvt->data = fetch_icalendar(pvt))) {
ast_log(LOG_WARNING, "Unable to parse iCalendar '%s'\n", pvt->owner->name);
continue;