diff options
Diffstat (limited to 'funcs/func_odbc.c')
-rw-r--r-- | funcs/func_odbc.c | 11 |
1 files changed, 11 insertions, 0 deletions
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++; |