diff options
author | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-01-21 17:50:04 +0000 |
---|---|---|
committer | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-01-21 17:50:04 +0000 |
commit | b14bdc5a1211fa53add7d87b9444b56576d6d2d8 (patch) | |
tree | a0057e266407ad019e0b495dd566584d47b50da5 /funcs | |
parent | 52fb5814943bd6d7d314d8f88dbd71b2c8d61c24 (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.c | 8 | ||||
-rw-r--r-- | funcs/func_cut.c | 9 | ||||
-rw-r--r-- | funcs/func_logic.c | 15 | ||||
-rw-r--r-- | funcs/func_math.c | 4 | ||||
-rw-r--r-- | funcs/func_md5.c | 4 | ||||
-rw-r--r-- | funcs/func_odbc.c | 11 | ||||
-rw-r--r-- | funcs/func_rand.c | 7 | ||||
-rw-r--r-- | funcs/func_strings.c | 21 |
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); |