summaryrefslogtreecommitdiffstats
path: root/database/sqlite/sqlite.c
diff options
context:
space:
mode:
Diffstat (limited to 'database/sqlite/sqlite.c')
-rw-r--r--database/sqlite/sqlite.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/database/sqlite/sqlite.c b/database/sqlite/sqlite.c
index 9be9758..c58aa01 100644
--- a/database/sqlite/sqlite.c
+++ b/database/sqlite/sqlite.c
@@ -197,7 +197,7 @@ static int _cb_parse_result(void *NotUsed, int argc, char **argv, char **colName
dbresult *sqlite_query(eurephiaCTX *ctx, char *fmt, ... ) {
int rc;
va_list ap;
- char *errMsg = NULL, sql[65538];
+ char *errMsg = NULL, *sql = NULL;
eDBconn *dbc = ctx->dbc;
if( ctx->dbc == NULL ) {
@@ -214,20 +214,21 @@ dbresult *sqlite_query(eurephiaCTX *ctx, char *fmt, ... ) {
glob_results->num_tuples = 0;
// prepare SQL query
- memset(&sql, 0, 65538);
va_start(ap, fmt);
- vsnprintf(sql, 65535, fmt, ap);
+ sql = sqlite3_vmprintf(fmt, ap);
va_end(ap);
eurephia_log(ctx, LOG_DEBUG, 11, "Doing SQL Query: %s", sql);
rc = sqlite3_exec( (sqlite3 *) dbc->dbhandle, sql, _cb_parse_result, 0, &errMsg );
if( rc != SQLITE_OK ) {
eurephia_log(ctx, LOG_ERROR, 0, "SQL Error: %s", errMsg);
+ sqlite3_free(sql); sql = NULL;
return NULL;
}
glob_results->srch_tuples = glob_results->tuples;
glob_results->srch_headerrec = glob_results->headerrec;
+ sqlite3_free(sql); sql = NULL;
return glob_results;
}