diff options
author | Matthew Jordan <mjordan@digium.com> | 2013-05-26 04:47:17 +0000 |
---|---|---|
committer | Matthew Jordan <mjordan@digium.com> | 2013-05-26 04:47:17 +0000 |
commit | fe3ca5401f2543bcc59d73de0ffd779112322d6c (patch) | |
tree | d4d7ee76fe9f3b032b7d40ef57861cecf93eeb12 /res/res_fax.c | |
parent | 97c6062dfc528d60c7115cca1a4a4e7c44c882f6 (diff) |
Fix a variety of memory corruption/assertion errors
* Initialize a Stasis-Core message type prior to initializing a caching topic.
The caching topic will attempt to use the message type.
* Don't attempt to publish Stasis-Core messages from remote console connections.
They aren't the main process; they shouldn't attempt to behave as it (they also
don't have the infrastructure to do so)
* Don't treat a JSON object as an ao2 object (whoops)
* In asterisk.c, ref bump the JSON even package that is distributed with the
event meta data. The callers assume that they own the reference, and the packing
routine steals references.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@389785 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res/res_fax.c')
-rw-r--r-- | res/res_fax.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/res/res_fax.c b/res/res_fax.c index 4b8c9d7ca..4b942e524 100644 --- a/res/res_fax.c +++ b/res/res_fax.c @@ -2246,7 +2246,7 @@ static int sendfax_t38_init(struct ast_channel *chan, struct ast_fax_session_det */ static int report_send_fax_status(struct ast_channel *chan, struct ast_fax_session_details *details) { - RAII_VAR(struct ast_json *, json_obj, NULL, ao2_cleanup); + RAII_VAR(struct ast_json *, json_obj, NULL, ast_json_unref); RAII_VAR(struct stasis_message *, message, NULL, ao2_cleanup); struct ast_json *json_filenames; @@ -2257,7 +2257,7 @@ static int report_send_fax_status(struct ast_channel *chan, struct ast_fax_sessi { SCOPED_CHANNELLOCK(lock, chan); - json_obj = ast_json_pack("{s: s, s: s, s: s, s: s, s: s, s: s, s: s, s: o}", + json_obj = ast_json_pack("{s: s, s: s, s: s, s: s, s: s, s: s, s: o}", "type", "send" "remote_station_id", S_OR(pbx_builtin_getvar_helper(chan, "REMOTESTATIONID"), ""), "local_station_id", S_OR(pbx_builtin_getvar_helper(chan, "LOCALSTATIONID"), ""), |