summaryrefslogtreecommitdiff
path: root/funcs
diff options
context:
space:
mode:
authorRussell Bryant <russell@russellbryant.com>2007-01-17 23:35:43 +0000
committerRussell Bryant <russell@russellbryant.com>2007-01-17 23:35:43 +0000
commit445269f001482b394e07f7b79a1ce58ff39e920e (patch)
treedfae01da10cb46c54f43a7514a60d406403c1e6b /funcs
parent45bd0c4f3f0053367063d32a7d4776cf0ccbf26d (diff)
Merged revisions 51205 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r51205 | russell | 2007-01-17 17:31:11 -0600 (Wed, 17 Jan 2007) | 5 lines Fix some instances where when loading func_odbc, a double-free could occur. Also, remove an unneeded error message. If the failure condition is actually a memory allocation failure, a log message will already be generated automatically. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@51207 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'funcs')
-rw-r--r--funcs/func_odbc.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/funcs/func_odbc.c b/funcs/func_odbc.c
index b2997340f..f6fecea4b 100644
--- a/funcs/func_odbc.c
+++ b/funcs/func_odbc.c
@@ -431,6 +431,7 @@ static int init_acf_query(struct ast_config *cfg, char *catg, struct acf_odbc_qu
if (!ast_strlen_zero((*query)->sql_read) && ast_strlen_zero((*query)->readhandle[0])) {
free(*query);
+ *query = NULL;
ast_log(LOG_ERROR, "There is SQL, but no ODBC class to be used for reading: %s\n", catg);
return EINVAL;
}
@@ -443,6 +444,7 @@ static int init_acf_query(struct ast_config *cfg, char *catg, struct acf_odbc_qu
if (!ast_strlen_zero((*query)->sql_write) && ast_strlen_zero((*query)->writehandle[0])) {
free(*query);
+ *query = NULL;
ast_log(LOG_ERROR, "There is SQL, but no ODBC class to be used for writing: %s\n", catg);
return EINVAL;
}
@@ -457,6 +459,7 @@ static int init_acf_query(struct ast_config *cfg, char *catg, struct acf_odbc_qu
(*query)->acf = ast_calloc(1, sizeof(struct ast_custom_function));
if (! (*query)->acf) {
free(*query);
+ *query = NULL;
return ENOMEM;
}
@@ -469,6 +472,7 @@ static int init_acf_query(struct ast_config *cfg, char *catg, struct acf_odbc_qu
if (!((*query)->acf->name)) {
free((*query)->acf);
free(*query);
+ *query = NULL;
return ENOMEM;
}
@@ -478,6 +482,7 @@ static int init_acf_query(struct ast_config *cfg, char *catg, struct acf_odbc_qu
free((char *)(*query)->acf->name);
free((*query)->acf);
free(*query);
+ *query = NULL;
return ENOMEM;
}
@@ -519,6 +524,7 @@ static int init_acf_query(struct ast_config *cfg, char *catg, struct acf_odbc_qu
free((char *)(*query)->acf->name);
free((*query)->acf);
free(*query);
+ *query = NULL;
return ENOMEM;
}