Summary:ASTERISK-07422: [patch] advanced_options() destroys msg_cfg used for context and cid info before it's used
Reporter:Warren Volz (wvolz)Labels:
Date Opened:2006-07-29 21:53:07Date Closed:2006-09-07 21:01:39
Versions:Frequency of
Environment:Attachments:( 0) app_voicemail_c_37604.patch2
Description:The advanced_options() function gets the callerid info, context and several other things from the voicemail info file/odbc before presenting options to the user. For non ODBC installs this info is read from the filesytem and parsed into a ast_config struct and then used for several options off the menu including the "play envelope" command. The current SVN version (number below) is calling the ast_config_destroy function on the msg_cfg stuct with the info from the filesystem before it's used by the functions that use this information. This causes the context and cid pointers to contain random/invalid info and so the user hears incorrect info if playing the envelope, can't call the user back, and can't send a reply or sends a reply to the wrong place.


Patch attached.
Comments:By: Jason Parker (jparker) 2006-07-30 03:26:27

Please read the file doc/CODING-GUIDELINES, and fix the formatting of your patch.

By: Tilghman Lesher (tilghman) 2006-07-30 09:54:57

Also, I need a disclaimer on file before I can take a look at this patch.

By: Warren Volz (wvolz) 2006-07-30 23:24:34

Sorry about the whitespace, the file has tabs in it instead of spaces... The second version attached should be much better.

By: Warren Volz (wvolz) 2006-07-30 23:25:17

The new patch has an additional case where I forgot to add a destroy.

By: Serge Vecher (serge-v) 2006-07-31 09:46:13

wvoltz: please send in a disclaimer to Digium as requested by Corydon76 in note 0049608. Thanks.

By: Warren Volz (wvolz) 2006-07-31 13:01:51

Disclaimer faxed.

By: Serge Vecher (serge-v) 2006-09-06 10:34:13

Corydon76: mind reviewing the patch here, please?

By: Max Mutrux (rmaxm) 2006-09-07 16:34:41

Minor tweek to this patch, replace:
        if (res)
               return 9;
        if (res) {
               return 9;
In the two places where it occurs.

By: Joshua C. Colp (jcolp) 2006-09-07 21:01:38

Fixed in trunk as of revision 42373. Thanks!