[asterisk-commits] coreyfarrell: branch 1.8 r411313 - in /branches/1.8: apps/ channels/ funcs/ res/
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Thu Mar 27 14:06:25 CDT 2014
Author: coreyfarrell
Date: Thu Mar 27 14:06:13 2014
New Revision: 411313
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=411313
Log:
Fix dialplan function NULL channel safety issues
(closes issue ASTERISK-23391)
Reported by: Corey Farrell
Review: https://reviewboard.asterisk.org/r/3386/
Modified:
branches/1.8/apps/app_jack.c
branches/1.8/apps/app_readexten.c
branches/1.8/apps/app_speech_utils.c
branches/1.8/apps/app_stack.c
branches/1.8/channels/chan_iax2.c
branches/1.8/channels/chan_sip.c
branches/1.8/funcs/func_blacklist.c
branches/1.8/funcs/func_callcompletion.c
branches/1.8/funcs/func_callerid.c
branches/1.8/funcs/func_channel.c
branches/1.8/funcs/func_dialplan.c
branches/1.8/funcs/func_frame_trace.c
branches/1.8/funcs/func_global.c
branches/1.8/funcs/func_groupcount.c
branches/1.8/funcs/func_math.c
branches/1.8/funcs/func_odbc.c
branches/1.8/funcs/func_pitchshift.c
branches/1.8/funcs/func_speex.c
branches/1.8/funcs/func_strings.c
branches/1.8/funcs/func_volume.c
branches/1.8/res/res_calendar.c
branches/1.8/res/res_jabber.c
branches/1.8/res/res_mutestream.c
Modified: branches/1.8/apps/app_jack.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/apps/app_jack.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/apps/app_jack.c (original)
+++ branches/1.8/apps/app_jack.c Thu Mar 27 14:06:13 2014
@@ -951,6 +951,11 @@
{
int res;
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
+
if (!strcasecmp(value, "on"))
res = enable_jack_hook(chan, data);
else if (!strcasecmp(value, "off"))
Modified: branches/1.8/apps/app_readexten.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/apps/app_readexten.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/apps/app_readexten.c (original)
+++ branches/1.8/apps/app_readexten.c Thu Mar 27 14:06:13 2014
@@ -289,6 +289,11 @@
AST_APP_ARG(priority);
);
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
+
AST_STANDARD_APP_ARGS(args, parse);
if (ast_strlen_zero(args.context))
Modified: branches/1.8/apps/app_speech_utils.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/apps/app_speech_utils.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/apps/app_speech_utils.c (original)
+++ branches/1.8/apps/app_speech_utils.c Thu Mar 27 14:06:13 2014
@@ -284,7 +284,11 @@
{
struct ast_speech *speech = NULL;
struct ast_datastore *datastore = NULL;
-
+
+ if (!chan) {
+ return NULL;
+ }
+
datastore = ast_channel_datastore_find(chan, &speech_datastore, NULL);
if (datastore == NULL) {
return NULL;
Modified: branches/1.8/apps/app_stack.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/apps/app_stack.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/apps/app_stack.c (original)
+++ branches/1.8/apps/app_stack.c Thu Mar 27 14:06:13 2014
@@ -569,6 +569,11 @@
struct gosub_stack_frame *frame;
struct ast_var_t *variables;
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
+
ast_channel_lock(chan);
if (!(stack_store = ast_channel_datastore_find(chan, &stack_info, NULL))) {
ast_channel_unlock(chan);
@@ -602,6 +607,11 @@
struct ast_datastore *stack_store;
AST_LIST_HEAD(, gosub_stack_frame) *oldlist;
struct gosub_stack_frame *frame;
+
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
ast_channel_lock(chan);
if (!(stack_store = ast_channel_datastore_find(chan, &stack_info, NULL))) {
Modified: branches/1.8/channels/chan_iax2.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/channels/chan_iax2.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/channels/chan_iax2.c (original)
+++ branches/1.8/channels/chan_iax2.c Thu Mar 27 14:06:13 2014
@@ -9936,9 +9936,16 @@
static int acf_iaxvar_read(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
{
- struct ast_datastore *variablestore = ast_channel_datastore_find(chan, &iax2_variable_datastore_info, NULL);
+ struct ast_datastore *variablestore;
AST_LIST_HEAD(, ast_var_t) *varlist;
struct ast_var_t *var;
+
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
+
+ variablestore = ast_channel_datastore_find(chan, &iax2_variable_datastore_info, NULL);
if (!variablestore) {
*buf = '\0';
@@ -9959,9 +9966,16 @@
static int acf_iaxvar_write(struct ast_channel *chan, const char *cmd, char *data, const char *value)
{
- struct ast_datastore *variablestore = ast_channel_datastore_find(chan, &iax2_variable_datastore_info, NULL);
+ struct ast_datastore *variablestore;
AST_LIST_HEAD(, ast_var_t) *varlist;
struct ast_var_t *var;
+
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
+
+ variablestore = ast_channel_datastore_find(chan, &iax2_variable_datastore_info, NULL);
if (!variablestore) {
variablestore = ast_datastore_alloc(&iax2_variable_datastore_info, NULL);
@@ -14127,8 +14141,9 @@
/* if our channel, return the IP address of the endpoint of current channel */
if (!strcmp(peername,"CURRENTCHANNEL")) {
unsigned short callno;
- if (chan->tech != &iax2_tech)
+ if (!chan || chan->tech != &iax2_tech) {
return -1;
+ }
callno = PTR_TO_CALLNO(chan->tech_pvt);
ast_copy_string(buf, iaxs[callno]->addr.sin_addr.s_addr ? ast_inet_ntoa(iaxs[callno]->addr.sin_addr) : "", len);
return 0;
Modified: branches/1.8/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/channels/chan_sip.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/channels/chan_sip.c (original)
+++ branches/1.8/channels/chan_sip.c Thu Mar 27 14:06:13 2014
@@ -20120,7 +20120,12 @@
);
int i, number, start = 0;
- if (ast_strlen_zero(data)) {
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", function);
+ return -1;
+ }
+
+ if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "This function requires a header name.\n");
return -1;
}
@@ -20293,8 +20298,13 @@
static int deprecated = 0;
*buf = 0;
-
- if (!data) {
+
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
+
+ if (!data) {
ast_log(LOG_WARNING, "This function requires a parameter name.\n");
return -1;
}
Modified: branches/1.8/funcs/func_blacklist.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/funcs/func_blacklist.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/funcs/func_blacklist.c (original)
+++ branches/1.8/funcs/func_blacklist.c Thu Mar 27 14:06:13 2014
@@ -61,6 +61,11 @@
char blacklist[1];
int bl = 0;
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
+
if (chan->caller.id.number.valid && chan->caller.id.number.str) {
if (!ast_db_get("blacklist", chan->caller.id.number.str, blacklist, sizeof (blacklist)))
bl = 1;
Modified: branches/1.8/funcs/func_callcompletion.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/funcs/func_callcompletion.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/funcs/func_callcompletion.c (original)
+++ branches/1.8/funcs/func_callcompletion.c Thu Mar 27 14:06:13 2014
@@ -74,6 +74,11 @@
struct ast_cc_config_params *cc_params;
int res;
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", name);
+ return -1;
+ }
+
ast_channel_lock(chan);
if (!(cc_params = ast_channel_get_cc_config_params(chan))) {
ast_channel_unlock(chan);
@@ -90,6 +95,11 @@
{
struct ast_cc_config_params *cc_params;
int res;
+
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
ast_channel_lock(chan);
if (!(cc_params = ast_channel_get_cc_config_params(chan))) {
Modified: branches/1.8/funcs/func_callerid.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/funcs/func_callerid.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/funcs/func_callerid.c (original)
+++ branches/1.8/funcs/func_callerid.c Thu Mar 27 14:06:13 2014
@@ -812,6 +812,11 @@
*/
static int callerpres_read(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
{
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
+
if (!callerpres_deprecate_notify) {
callerpres_deprecate_notify = 1;
ast_log(LOG_WARNING, "CALLERPRES is deprecated."
@@ -837,6 +842,11 @@
static int callerpres_write(struct ast_channel *chan, const char *cmd, char *data, const char *value)
{
int pres;
+
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
if (!callerpres_deprecate_notify) {
callerpres_deprecate_notify = 1;
Modified: branches/1.8/funcs/func_channel.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/funcs/func_channel.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/funcs/func_channel.c (original)
+++ branches/1.8/funcs/func_channel.c Thu Mar 27 14:06:13 2014
@@ -338,6 +338,11 @@
{
int ret = 0;
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", function);
+ return -1;
+ }
+
if (!strcasecmp(data, "audionativeformat"))
/* use the _multiple version when chan->nativeformats holds multiple formats */
/* ast_getformatname_multiple(buf, len, chan->nativeformats & AST_FORMAT_AUDIO_MASK); */
@@ -580,6 +585,11 @@
.value = value,
};
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", function);
+ return -1;
+ }
+
res = func_channel_write_real(chan, function, data, value);
ast_channel_setoption(chan, AST_OPTION_CHANNEL_WRITE, &write_info, sizeof(write_info), 0);
@@ -653,8 +663,15 @@
static int func_mchan_read(struct ast_channel *chan, const char *function,
char *data, struct ast_str **buf, ssize_t len)
{
- struct ast_channel *mchan = ast_channel_get_by_name(chan->linkedid);
+ struct ast_channel *mchan;
char *template = ast_alloca(4 + strlen(data));
+
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", function);
+ return -1;
+ }
+
+ mchan = ast_channel_get_by_name(chan->linkedid);
sprintf(template, "${%s}", data); /* SAFE */
ast_str_substitute_variables(buf, len, mchan ? mchan : chan, template);
if (mchan) {
@@ -666,7 +683,14 @@
static int func_mchan_write(struct ast_channel *chan, const char *function,
char *data, const char *value)
{
- struct ast_channel *mchan = ast_channel_get_by_name(chan->linkedid);
+ struct ast_channel *mchan;
+
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", function);
+ return -1;
+ }
+
+ mchan = ast_channel_get_by_name(chan->linkedid);
pbx_builtin_setvar_helper(mchan ? mchan : chan, data, value);
if (mchan) {
ast_channel_unref(mchan);
Modified: branches/1.8/funcs/func_dialplan.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/funcs/func_dialplan.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/funcs/func_dialplan.c (original)
+++ branches/1.8/funcs/func_dialplan.c Thu Mar 27 14:06:13 2014
@@ -78,20 +78,23 @@
int priority_num;
if (sscanf(args.priority, "%30d", &priority_num) == 1 && priority_num > 0) {
int res;
- res = ast_exists_extension(chan, args.context, args.exten, priority_num,
+ res = ast_exists_extension(chan, args.context, args.exten, priority_num,
+ !chan ? NULL :
S_COR(chan->caller.id.number.valid, chan->caller.id.number.str, NULL));
if (res)
strcpy(buf, "1");
} else {
int res;
res = ast_findlabel_extension(chan, args.context, args.exten, args.priority,
+ !chan ? NULL :
S_COR(chan->caller.id.number.valid, chan->caller.id.number.str, NULL));
if (res > 0)
strcpy(buf, "1");
}
} else if (!ast_strlen_zero(args.exten)) {
int res;
- res = ast_exists_extension(chan, args.context, args.exten, 1,
+ res = ast_exists_extension(chan, args.context, args.exten, 1,
+ !chan ? NULL :
S_COR(chan->caller.id.number.valid, chan->caller.id.number.str, NULL));
if (res)
strcpy(buf, "1");
Modified: branches/1.8/funcs/func_frame_trace.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/funcs/func_frame_trace.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/funcs/func_frame_trace.c (original)
+++ branches/1.8/funcs/func_frame_trace.c Thu Mar 27 14:06:13 2014
@@ -157,6 +157,11 @@
};
int i = 0;
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
+
if (!(framedata = ast_calloc(1, sizeof(*framedata)))) {
return 0;
}
Modified: branches/1.8/funcs/func_global.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/funcs/func_global.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/funcs/func_global.c (original)
+++ branches/1.8/funcs/func_global.c Thu Mar 27 14:06:13 2014
@@ -155,6 +155,9 @@
return -1;
}
chan = c_ref;
+ } else if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
}
ast_channel_lock(chan);
@@ -213,6 +216,9 @@
return -1;
}
chan = c_ref;
+ } else if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
}
ast_channel_lock(chan);
Modified: branches/1.8/funcs/func_groupcount.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/funcs/func_groupcount.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/funcs/func_groupcount.c (original)
+++ branches/1.8/funcs/func_groupcount.c Thu Mar 27 14:06:13 2014
@@ -104,6 +104,11 @@
int count = -1;
char group[80] = "", category[80] = "";
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
+
ast_app_group_split_group(data, group, sizeof(group), category,
sizeof(category));
@@ -174,9 +179,14 @@
{
int ret = -1;
struct ast_group_info *gi = NULL;
-
+
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
+
ast_app_group_list_rdlock();
-
+
for (gi = ast_app_group_list_head(); gi; gi = AST_LIST_NEXT(gi, group_list)) {
if (gi->chan != chan)
continue;
@@ -200,6 +210,11 @@
char *data, const char *value)
{
char grpcat[256];
+
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
if (!value) {
return -1;
Modified: branches/1.8/funcs/func_math.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/funcs/func_math.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/funcs/func_math.c (original)
+++ branches/1.8/funcs/func_math.c Thu Mar 27 14:06:13 2014
@@ -392,6 +392,11 @@
return -1;
}
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
+
ast_channel_lock(chan);
if (!(var = pbx_builtin_getvar_helper(chan, data))) {
Modified: branches/1.8/funcs/func_odbc.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/funcs/func_odbc.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/funcs/func_odbc.c (original)
+++ branches/1.8/funcs/func_odbc.c Thu Mar 27 14:06:13 2014
@@ -801,6 +801,11 @@
struct odbc_datastore *resultset;
struct odbc_datastore_row *row;
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
+
ast_channel_lock(chan);
store = ast_channel_datastore_find(chan, &odbc_info, data);
if (!store) {
Modified: branches/1.8/funcs/func_pitchshift.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/funcs/func_pitchshift.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/funcs/func_pitchshift.c (original)
+++ branches/1.8/funcs/func_pitchshift.c Thu Mar 27 14:06:13 2014
@@ -201,6 +201,11 @@
int new = 0;
float amount = 0;
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
+
ast_channel_lock(chan);
if (!(datastore = ast_channel_datastore_find(chan, &pitchshift_datastore, NULL))) {
ast_channel_unlock(chan);
Modified: branches/1.8/funcs/func_speex.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/funcs/func_speex.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/funcs/func_speex.c (original)
+++ branches/1.8/funcs/func_speex.c Thu Mar 27 14:06:13 2014
@@ -200,6 +200,11 @@
struct speex_direction_info **sdi = NULL;
int is_new = 0;
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
+
if (strcasecmp(data, "rx") && strcasecmp(data, "tx")) {
ast_log(LOG_ERROR, "Invalid argument provided to the %s function\n", cmd);
return -1;
Modified: branches/1.8/funcs/func_strings.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/funcs/func_strings.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/funcs/func_strings.c (original)
+++ branches/1.8/funcs/func_strings.c Thu Mar 27 14:06:13 2014
@@ -990,6 +990,11 @@
struct ast_var_t *newvar;
struct ast_str *prefix = ast_str_alloca(80);
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
+
ast_str_set(&prefix, -1, HASH_PREFIX, data);
memset(buf, 0, len);
@@ -1011,6 +1016,11 @@
struct ast_var_t *newvar;
struct ast_str *prefix = ast_str_alloca(80);
char *tmp;
+
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
ast_str_set(&prefix, -1, HASH_PREFIX, data);
@@ -1080,6 +1090,11 @@
AST_DECLARE_APP_ARGS(arg2,
AST_APP_ARG(col)[100];
);
+
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel and only 1 parameter was provided to %s function.\n", cmd);
+ return -1;
+ }
/* Get column names, in no particular order */
hashkeys_read(chan, "HASHKEYS", arg.hashname, colnames, sizeof(colnames));
Modified: branches/1.8/funcs/func_volume.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/funcs/func_volume.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/funcs/func_volume.c (original)
+++ branches/1.8/funcs/func_volume.c Thu Mar 27 14:06:13 2014
@@ -156,12 +156,17 @@
int is_new = 0;
/* Separate options from argument */
-
+
AST_DECLARE_APP_ARGS(args,
AST_APP_ARG(direction);
AST_APP_ARG(options);
);
-
+
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
+
AST_STANDARD_APP_ARGS(args, data);
ast_channel_lock(chan);
Modified: branches/1.8/res/res_calendar.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/res/res_calendar.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/res/res_calendar.c (original)
+++ branches/1.8/res/res_calendar.c Thu Mar 27 14:06:13 2014
@@ -1585,6 +1585,11 @@
struct ast_datastore *datastore;
struct ast_calendar_event *event;
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
+
if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "%s requires an argument\n", cmd);
return -1;
Modified: branches/1.8/res/res_jabber.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/res/res_jabber.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/res/res_jabber.c (original)
+++ branches/1.8/res/res_jabber.c Thu Mar 27 14:06:13 2014
@@ -827,7 +827,7 @@
start = ast_tvnow();
- if (ast_autoservice_start(chan) < 0) {
+ if (chan && ast_autoservice_start(chan) < 0) {
ast_log(LOG_WARNING, "Cannot start autoservice for channel %s\n", chan->name);
ASTOBJ_UNREF(client, ast_aji_client_destroy);
return -1;
@@ -899,7 +899,7 @@
}
ASTOBJ_UNREF(client, ast_aji_client_destroy);
- if (ast_autoservice_stop(chan) < 0) {
+ if (chan && ast_autoservice_stop(chan) < 0) {
ast_log(LOG_WARNING, "Cannot stop autoservice for channel %s\n", chan->name);
}
Modified: branches/1.8/res/res_mutestream.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/res/res_mutestream.c?view=diff&rev=411313&r1=411312&r2=411313
==============================================================================
--- branches/1.8/res/res_mutestream.c (original)
+++ branches/1.8/res/res_mutestream.c Thu Mar 27 14:06:13 2014
@@ -206,6 +206,11 @@
struct mute_information *mute = NULL;
int is_new = 0;
+ if (!chan) {
+ ast_log(LOG_WARNING, "No channel was provided to %s function.\n", cmd);
+ return -1;
+ }
+
ast_channel_lock(chan);
if (!(datastore = ast_channel_datastore_find(chan, &mute_datastore, NULL))) {
if (!(datastore = initialize_mutehook(chan))) {
More information about the asterisk-commits
mailing list