diff --git a/src/mod/event_handlers/mod_rayo/rayo_output_component.c b/src/mod/event_handlers/mod_rayo/rayo_output_component.c index 32f2c7d754..c6447cbacc 100644 --- a/src/mod/event_handlers/mod_rayo/rayo_output_component.c +++ b/src/mod/event_handlers/mod_rayo/rayo_output_component.c @@ -79,6 +79,7 @@ static struct rayo_component *create_output_component(struct rayo_actor *actor, output_component->max_time_ms = iks_find_int_attrib(output, "max-time"); output_component->start_paused = iks_find_bool_attrib(output, "start-paused"); output_component->renderer = switch_core_strdup(RAYO_POOL(output_component), iks_find_attrib_soft(output, "renderer")); + output_component->headers = NULL; /* get custom headers */ { switch_stream_handle_t headers = { 0 }; @@ -95,11 +96,11 @@ static struct rayo_component *create_output_component(struct rayo_actor *actor, } } } - if (headers.data) { + if (headers.data && !first) { headers.write_function(&headers, "}"); output_component->headers = switch_core_strdup(RAYO_POOL(output_component), (char *)headers.data); - free(headers.data); } + switch_safe_free(headers.data); } } else { switch_core_destroy_memory_pool(&pool);