aboutsummaryrefslogtreecommitdiffstats
path: root/funcs
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2006-01-21 17:50:04 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2006-01-21 17:50:04 +0000
commitb14bdc5a1211fa53add7d87b9444b56576d6d2d8 (patch)
treea0057e266407ad019e0b495dd566584d47b50da5 /funcs
parent52fb5814943bd6d7d314d8f88dbd71b2c8d61c24 (diff)
revert my pass through the tree to remove checks of the result of ast_strdupa
(revisions 8378 through 8381) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@8387 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'funcs')
-rw-r--r--funcs/func_cdr.c8
-rw-r--r--funcs/func_cut.c9
-rw-r--r--funcs/func_logic.c15
-rw-r--r--funcs/func_math.c4
-rw-r--r--funcs/func_md5.c4
-rw-r--r--funcs/func_odbc.c11
-rw-r--r--funcs/func_rand.c7
-rw-r--r--funcs/func_strings.c21
8 files changed, 74 insertions, 5 deletions
diff --git a/funcs/func_cdr.c b/funcs/func_cdr.c
index e930f4880..c5cadc758 100644
--- a/funcs/func_cdr.c
+++ b/funcs/func_cdr.c
@@ -64,6 +64,10 @@ static char *builtin_function_cdr_read(struct ast_channel *chan, char *cmd, char
return NULL;
parse = ast_strdupa(data);
+ if (!parse) {
+ ast_log(LOG_ERROR, "Out of memory!\n");
+ return NULL;
+ }
AST_STANDARD_APP_ARGS(args, parse);
@@ -89,6 +93,10 @@ static void builtin_function_cdr_write(struct ast_channel *chan, char *cmd, char
return;
parse = ast_strdupa(data);
+ if (!parse) {
+ ast_log(LOG_ERROR, "Out of memory!\n");
+ return;
+ }
AST_STANDARD_APP_ARGS(args, parse);
diff --git a/funcs/func_cut.c b/funcs/func_cut.c
index fe53eedaf..1df47030e 100644
--- a/funcs/func_cut.c
+++ b/funcs/func_cut.c
@@ -83,7 +83,10 @@ static int sort_internal(struct ast_channel *chan, char *data, char *buffer, siz
return ERROR_NOARG;
}
- strings = ast_strdupa(data);
+ strings = ast_strdupa((char *)data);
+ if (!strings) {
+ return ERROR_NOMEM;
+ }
for (ptrkey = strings; *ptrkey; ptrkey++) {
if (*ptrkey == '|') {
@@ -140,6 +143,10 @@ static int cut_internal(struct ast_channel *chan, char *data, char *buffer, size
memset(buffer, 0, buflen);
parse = ast_strdupa(data);
+ if (!parse) {
+ ast_log(LOG_ERROR, "Out of memory!\n");
+ return ERROR_NOMEM;
+ }
AST_STANDARD_APP_ARGS(args, parse);
diff --git a/funcs/func_logic.c b/funcs/func_logic.c
index 5f324c634..d1d96abf3 100644
--- a/funcs/func_logic.c
+++ b/funcs/func_logic.c
@@ -55,7 +55,10 @@ static char *builtin_function_iftime(struct ast_channel *chan, char *cmd, char *
char *iftrue;
char *iffalse;
- data = ast_strdupa(data);
+ if (!(data = ast_strdupa(data))) {
+ ast_log(LOG_WARNING, "Memory Error!\n");
+ return NULL;
+ }
data = ast_strip_quoted(data, "\"", "\"");
expr = strsep(&data, "?");
@@ -92,7 +95,10 @@ static char *builtin_function_if(struct ast_channel *chan, char *cmd, char *data
char *iftrue;
char *iffalse;
- data = ast_strdupa(data);
+ if (!(data = ast_strdupa(data))) {
+ ast_log(LOG_WARNING, "Memory Error!\n");
+ return NULL;
+ }
data = ast_strip_quoted(data, "\"", "\"");
expr = strsep(&data, "?");
@@ -123,7 +129,10 @@ static char *builtin_function_set(struct ast_channel *chan, char *cmd, char *dat
char *varname;
char *val;
- data = ast_strdupa(data);
+ if (!(data = ast_strdupa(data))) {
+ ast_log(LOG_WARNING, "Memory Error!\n");
+ return NULL;
+ }
varname = strsep(&data, "=");
val = data;
diff --git a/funcs/func_math.c b/funcs/func_math.c
index fca53dd07..d086fe304 100644
--- a/funcs/func_math.c
+++ b/funcs/func_math.c
@@ -89,6 +89,10 @@ static char *builtin_function_math(struct ast_channel *chan, char *cmd, char *da
}
parse = ast_strdupa(data);
+ if(!parse) {
+ ast_log(LOG_ERROR, "Out of memory!\n");
+ return NULL;
+ }
AST_STANDARD_APP_ARGS(args, parse);
diff --git a/funcs/func_md5.c b/funcs/func_md5.c
index 57c39753f..552e876ed 100644
--- a/funcs/func_md5.c
+++ b/funcs/func_md5.c
@@ -68,6 +68,10 @@ static char *builtin_function_checkmd5(struct ast_channel *chan, char *cmd, char
}
parse = ast_strdupa(data);
+ if (!parse) {
+ ast_log(LOG_ERROR, "Out of memory!\n");
+ return NULL;
+ }
AST_STANDARD_APP_ARGS(args, parse);
diff --git a/funcs/func_odbc.c b/funcs/func_odbc.c
index 7c34b5c0f..3e0f52fea 100644
--- a/funcs/func_odbc.c
+++ b/funcs/func_odbc.c
@@ -108,6 +108,12 @@ static void acf_odbc_write(struct ast_channel *chan, char *cmd, char *data, cons
t = "";
}
+ if (!s || !t) {
+ ast_log(LOG_ERROR, "Out of memory\n");
+ ast_mutex_unlock(&query_lock);
+ return;
+ }
+
/* XXX You might be tempted to change this section into using
* pbx_builtin_pushvar_helper(). However, note that if you try
* to set a NULL (like for VALUE), then nothing gets set, and the
@@ -260,6 +266,11 @@ static char *acf_odbc_read(struct ast_channel *chan, char *cmd, char *data, char
/* Parse our arguments */
s = ast_strdupa(data);
+ if (!s) {
+ ast_log(LOG_ERROR, "Out of memory\n");
+ ast_mutex_unlock(&query_lock);
+ return "";
+ }
while ((arg = strsep(&s, "|"))) {
count++;
diff --git a/funcs/func_rand.c b/funcs/func_rand.c
index 196d2bad3..dbd82c941 100644
--- a/funcs/func_rand.c
+++ b/funcs/func_rand.c
@@ -55,7 +55,12 @@ static char *acf_rand_exec(struct ast_channel *chan, char *cmd, char *data, char
LOCAL_USER_ACF_ADD(u);
- s = ast_strdupa(data);
+ if (!(s = ast_strdupa(data))) {
+ ast_log(LOG_WARNING, "Out of memory\n");
+ *buffer = '\0';
+ LOCAL_USER_REMOVE(u);
+ return buffer;
+ }
ast_app_separate_args(s, '|', args, sizeof(args) / sizeof(args[0]));
diff --git a/funcs/func_strings.c b/funcs/func_strings.c
index 447ec8fb5..9ea811f62 100644
--- a/funcs/func_strings.c
+++ b/funcs/func_strings.c
@@ -52,6 +52,11 @@ static char *function_fieldqty(struct ast_channel *chan, char *cmd, char *data,
);
parse = ast_strdupa(data);
+ if (!parse) {
+ ast_log(LOG_ERROR, "Out of memory\n");
+ ast_copy_string(buf, "0", len);
+ return buf;
+ }
AST_STANDARD_APP_ARGS(args, parse);
if (args.delim) {
@@ -86,6 +91,10 @@ static char *builtin_function_filter(struct ast_channel *chan, char *cmd, char *
char *outbuf=buf;
parse = ast_strdupa(data);
+ if (!parse) {
+ ast_log(LOG_ERROR, "Out of memory");
+ return "";
+ }
AST_STANDARD_APP_ARGS(args, parse);
@@ -132,6 +141,10 @@ static char *builtin_function_regex(struct ast_channel *chan, char *cmd, char *d
ast_copy_string(buf, "0", len);
parse = ast_strdupa(data);
+ if (!parse) {
+ ast_log(LOG_ERROR, "Out of memory in %s(%s)\n", cmd, data);
+ return buf;
+ }
AST_NONSTANDARD_APP_ARGS(args, parse, '"');
@@ -172,6 +185,10 @@ static void builtin_function_array(struct ast_channel *chan, char *cmd, char *da
var = ast_strdupa(data);
value2 = ast_strdupa(value);
+ if (!var || !value2) {
+ ast_log(LOG_ERROR, "Out of memory\n");
+ return;
+ }
/* The functions this will generally be used with are SORT and ODBC_*, which
* both return comma-delimited lists. However, if somebody uses literal lists,
@@ -260,6 +277,10 @@ static char *acf_strftime(struct ast_channel *chan, char *cmd, char *data, char
}
parse = ast_strdupa(data);
+ if (!parse) {
+ ast_log(LOG_ERROR, "Out of memory\n");
+ return buf;
+ }
AST_STANDARD_APP_ARGS(args, parse);