res_calendar: Resolve memory leak on calendar destruction

Calling ne_uri_parse allocates memory that needs to be freed with a
corresponding call to ne_uri_free.

ASTERISK-28572 #close

Change-Id: I8a6834da27000a6807d89cb7a157b2a88fcb5e61
remotes/origin/18.0
Sean Bright 5 years ago
parent d5fab6f22e
commit 16e668c7dd

@ -118,6 +118,7 @@ static void ewscal_destructor(void *obj)
if (pvt->session) { if (pvt->session) {
ne_session_destroy(pvt->session); ne_session_destroy(pvt->session);
} }
ne_uri_free(&pvt->uri);
ast_string_field_free_memory(pvt); ast_string_field_free_memory(pvt);
ao2_callback(pvt->events, OBJ_UNLINK | OBJ_NODATA | OBJ_MULTIPLE, NULL, NULL); ao2_callback(pvt->events, OBJ_UNLINK | OBJ_NODATA | OBJ_MULTIPLE, NULL, NULL);

@ -224,6 +224,7 @@ static void exchangecal_destructor(void *obj)
if (pvt->session) { if (pvt->session) {
ne_session_destroy(pvt->session); ne_session_destroy(pvt->session);
} }
ne_uri_free(&pvt->uri);
ast_string_field_free_memory(pvt); ast_string_field_free_memory(pvt);
ao2_callback(pvt->events, OBJ_UNLINK | OBJ_NODATA | OBJ_MULTIPLE, NULL, NULL); ao2_callback(pvt->events, OBJ_UNLINK | OBJ_NODATA | OBJ_MULTIPLE, NULL, NULL);

@ -78,6 +78,7 @@ static void icalendar_destructor(void *obj)
if (pvt->data) { if (pvt->data) {
icalcomponent_free(pvt->data); icalcomponent_free(pvt->data);
} }
ne_uri_free(&pvt->uri);
ast_string_field_free_memory(pvt); ast_string_field_free_memory(pvt);
ao2_callback(pvt->events, OBJ_UNLINK | OBJ_NODATA | OBJ_MULTIPLE, NULL, NULL); ao2_callback(pvt->events, OBJ_UNLINK | OBJ_NODATA | OBJ_MULTIPLE, NULL, NULL);

Loading…
Cancel
Save