summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--funcs/func_callerid.c6
-rw-r--r--funcs/func_cdr.c4
-rw-r--r--funcs/func_groupcount.c3
-rw-r--r--funcs/func_timeout.c6
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;