diff options
Diffstat (limited to 'funcs')
-rw-r--r-- | funcs/func_callerid.c | 6 | ||||
-rw-r--r-- | funcs/func_cdr.c | 4 | ||||
-rw-r--r-- | funcs/func_groupcount.c | 3 | ||||
-rw-r--r-- | funcs/func_timeout.c | 6 |
4 files changed, 15 insertions, 4 deletions
diff --git a/funcs/func_callerid.c b/funcs/func_callerid.c index e026d67a9..c8fd1bb9e 100644 --- a/funcs/func_callerid.c +++ b/funcs/func_callerid.c @@ -60,7 +60,9 @@ static int callerid_read(struct ast_channel *chan, const char *cmd, char *data, { char *opt = data; - /* XXX we are not always clearing the buffer. Is this correct ? */ + if (!chan) + return -1; + if (strchr(opt, '|')) { char name[80], num[80]; @@ -116,7 +118,7 @@ static int callerid_read(struct ast_channel *chan, const char *cmd, char *data, static int callerid_write(struct ast_channel *chan, const char *cmd, char *data, const char *value) { - if (!value) + if (!value || !chan) return -1; if (!strncasecmp("all", data, 3)) { diff --git a/funcs/func_cdr.c b/funcs/func_cdr.c index 4f1c457c0..951e980ae 100644 --- a/funcs/func_cdr.c +++ b/funcs/func_cdr.c @@ -59,7 +59,7 @@ static int cdr_read(struct ast_channel *chan, const char *cmd, char *parse, { char *ret; struct ast_flags flags = { 0 }; - struct ast_cdr *cdr = chan->cdr; + struct ast_cdr *cdr = chan ? chan->cdr : NULL; AST_DECLARE_APP_ARGS(args, AST_APP_ARG(variable); AST_APP_ARG(options); @@ -96,7 +96,7 @@ static int cdr_write(struct ast_channel *chan, const char *cmd, char *parse, AST_APP_ARG(options); ); - if (ast_strlen_zero(parse) || !value) + if (ast_strlen_zero(parse) || !value || !chan) return -1; AST_STANDARD_APP_ARGS(args, parse); diff --git a/funcs/func_groupcount.c b/funcs/func_groupcount.c index 2be3f831d..fb7ec57e2 100644 --- a/funcs/func_groupcount.c +++ b/funcs/func_groupcount.c @@ -158,6 +158,9 @@ static int group_list_function_read(struct ast_channel *chan, const char *cmd, char tmp1[1024] = ""; char tmp2[1024] = ""; + if (!chan) + return -1; + headp = &chan->varshead; AST_LIST_TRAVERSE(headp, current, entries) { if (!strncmp(ast_var_name(current), GROUP_CATEGORY_PREFIX "_", strlen(GROUP_CATEGORY_PREFIX) + 1)) { diff --git a/funcs/func_timeout.c b/funcs/func_timeout.c index a400a95ab..1da11e54a 100644 --- a/funcs/func_timeout.c +++ b/funcs/func_timeout.c @@ -46,6 +46,9 @@ static int timeout_read(struct ast_channel *chan, const char *cmd, char *data, { time_t myt; + if (!chan) + return -1; + if (!data) { ast_log(LOG_ERROR, "Must specify type of timeout to get.\n"); return -1; @@ -91,6 +94,9 @@ static int timeout_write(struct ast_channel *chan, const char *cmd, char *data, char timestr[64]; struct tm myt; + if (!chan) + return -1; + if (!data) { ast_log(LOG_ERROR, "Must specify type of timeout to set.\n"); return -1; |