memset(&ts, 0, sizeof(ts));
write_frame.codec = &write_codec;
write_frame.data = data;
+ write_frame.buflen = sizeof(data);
switch_buffer_create_dynamic(&audio_buffer, 512, 1024, 0);
teletone_init_session(&ts, 0, teletone_handler, audio_buffer);
{
switch_frame_t *new_frame;
+ if (!orig) {
+ return SWITCH_STATUS_FALSE;
+ }
+
+ switch_assert(orig->buflen);
+
new_frame = malloc(sizeof(*new_frame));
switch_assert(new_frame);
*new_frame = *orig;
switch_set_flag(new_frame, SFF_DYNAMIC);
+
new_frame->data = malloc(new_frame->buflen);
switch_assert(new_frame->data);
if (!frame || !*frame || !switch_test_flag((*frame), SFF_DYNAMIC)) {
return SWITCH_STATUS_FALSE;
}
-
- free((*frame)->data);
+
+ switch_safe_free((*frame)->data);
free(*frame);
*frame = NULL;