Index: cdr/cdr_adaptive_odbc.c =================================================================== --- cdr/cdr_adaptive_odbc.c (revision 87971) +++ cdr/cdr_adaptive_odbc.c (working copy) @@ -309,7 +309,7 @@ struct odbc_obj *obj; int lensql, lensql2, sizesql = maxsize, sizesql2 = maxsize2, newsize; /* Allocated, so we can realloc() */ - char *sql = ast_calloc(sizeof(char), sizesql), *sql2 = ast_calloc(sizeof(char), sizesql2), *tmp; + char *sql, *sql2, *tmp; char colbuf[1024], *colptr; SQLHSTMT stmt = NULL; SQLLEN rows = 0; @@ -319,6 +319,15 @@ return -1; } + sql = ast_calloc(sizeof(char), sizesql); + if (!sql) + return -1; + sql2 = ast_calloc(sizeof(char), sizesql2); + if (!sql2) { + ast_free(sql); + return -1; + } + AST_LIST_TRAVERSE(&odbc_tables, tableptr, list) { lensql = snprintf(sql, sizesql, "INSERT INTO %s (", tableptr->table); lensql2 = snprintf(sql2, sizesql2, " VALUES (");