]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Fix memory leak in phrase macro playback
authorTravis Cross <tc@traviscross.com>
Wed, 9 Apr 2014 07:26:36 +0000 (07:26 +0000)
committerTravis Cross <tc@traviscross.com>
Sat, 19 Apr 2014 01:49:25 +0000 (01:49 +0000)
We were leaking memory when break_on_match was set or when we received
back SWITCH_STATUS_BREAK from a callee as we were failing to free
field_expanded_alloc.

src/switch_ivr_play_say.c

index db9c26d556780dfe37c2e25d9bcc2671456a69a4..79ebd92479be5a6fcb7e406096146a058c03878e 100644 (file)
@@ -318,13 +318,12 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_phrase_macro_event(switch_core_sessio
                }
 
                switch_regex_safe_free(re);
-                       
+               switch_safe_free(field_expanded_alloc);
+
                if ((match && do_break && switch_true(do_break)) || status == SWITCH_STATUS_BREAK) {
                        break;
                }
 
-               switch_safe_free(field_expanded_alloc);
-
                if (status != SWITCH_STATUS_SUCCESS) {
                        done = 1;
                        break;