]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FSCORE-373
authorAnthony Minessale <anthony.minessale@gmail.com>
Fri, 29 May 2009 18:48:54 +0000 (18:48 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Fri, 29 May 2009 18:48:54 +0000 (18:48 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13508 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/languages/mod_spidermonkey_teletone/mod_spidermonkey_teletone.c
src/switch_ivr_play_say.c
src/switch_utils.c

index 9fed5ddf2361f5d648dec4195e8e9d631ab260ca..e72dc9a15e5205082314aef8ee518bed2b868ca0 100644 (file)
@@ -234,6 +234,7 @@ static JSBool teletone_generate(JSContext * cx, JSObject * obj, uintN argc, jsva
                session = tto->session;
                write_frame.codec = &tto->codec;
                write_frame.data = fdata;
+               write_frame.buflen = sizeof(fdata);
 
                channel = switch_core_session_get_channel(session);
 
index b5cbeab140e8c766620073eb7c556651f69da207..d0c6b7fd1dfc500a0074f2d0c41fb4cfd2a596d9 100644 (file)
@@ -731,6 +731,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_gentones(switch_core_session_t *sessi
        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);
index 8636008c4993c868cfff6684a4f2e644b983853b..4d745f340775adca71916830edea7d544792ddf7 100644 (file)
@@ -82,12 +82,19 @@ SWITCH_DECLARE(switch_status_t) switch_frame_dup(switch_frame_t *orig, switch_fr
 {
        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);
 
@@ -104,8 +111,8 @@ SWITCH_DECLARE(switch_status_t) switch_frame_free(switch_frame_t **frame)
        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;