diff --git a/funcs/func_odbc.c b/funcs/func_odbc.c index 23cc4f843ac3e4b49cf379175c695a659b644433..e0f4eb3020e8a026c442499cf8ba5199f05f658e 100644 --- a/funcs/func_odbc.c +++ b/funcs/func_odbc.c @@ -376,6 +376,8 @@ static int acf_odbc_read(struct ast_channel *chan, const char *cmd, char *s, cha return -1; } + ast_str_reset(colnames); + AST_RWLIST_RDLOCK(&queries); AST_RWLIST_TRAVERSE(&queries, query, list) { if (!strcmp(query->acf->name, cmd)) { @@ -531,6 +533,7 @@ static int acf_odbc_read(struct ast_channel *chan, const char *cmd, char *s, cha colnames->str[colnames->used++] = colname[i]; if (colname[i] == '\0') { + colnames->used--; break; } }