Summary:ASTERISK-07690: [patch] advanced_options frees memory then uses and modifies it later in the routine.
Reporter:Max Mutrux (rmaxm)Labels:
Date Opened:2006-09-07 16:27:15Date Closed:2011-06-07 14:08:09
Versions:Frequency of
Environment:Attachments:( 0) advanced_options-trunk-r42244.patch
Description:advanced_options calls ast_config_destroy() then calls play_message_datetime and play_message_callerid with retrieved values which are now in free'd memory.

play_message_callerid calls ast_callerid_parse which will drop may drop a zero into memory that's been allocated for another purpose.


This bug appears to be introduced in 1.2.10 to keep advanced_options from leaking memory.
I "yuck:" fixed the bug even though goto's are against my belief system.  It seems that the "yuck:" is really common in the code, so who am I to argue.

Comments:By: Max Mutrux (rmaxm) 2006-09-07 16:31:54

Just noticed that someone uploaded a patch to solve this same problem... Sorry.

But the other patch (0007618, 09-06-06) has a bug, you'll need to replace:
        if (res)
               return 9;
        if (res) {
               return 9;
In the two places where it occurs.

By: Joshua C. Colp (jcolp) 2006-09-07 20:55:17

I'm going to go for 7618, but thanks for the patch regardless.