From 24ea377458452e5f45992538572d57faf6ed297a Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Wed, 30 Apr 2014 09:30:17 +0200 Subject: [PATCH] sqlite: Allow query arguments to be freed before starting the enumeration By marking the string/blob arguments as transient, SQLite will copy and free them automatically. --- src/libstrongswan/plugins/sqlite/sqlite_database.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/libstrongswan/plugins/sqlite/sqlite_database.c b/src/libstrongswan/plugins/sqlite/sqlite_database.c index 7b4767855..675707491 100644 --- a/src/libstrongswan/plugins/sqlite/sqlite_database.c +++ b/src/libstrongswan/plugins/sqlite/sqlite_database.c @@ -101,13 +101,15 @@ static sqlite3_stmt* run(private_sqlite_database_t *this, char *sql, case DB_TEXT: { const char *text = va_arg(*args, const char*); - res = sqlite3_bind_text(stmt, i, text, -1, SQLITE_STATIC); + res = sqlite3_bind_text(stmt, i, text, -1, + SQLITE_TRANSIENT); break; } case DB_BLOB: { chunk_t c = va_arg(*args, chunk_t); - res = sqlite3_bind_blob(stmt, i, c.ptr, c.len, SQLITE_STATIC); + res = sqlite3_bind_blob(stmt, i, c.ptr, c.len, + SQLITE_TRANSIENT); break; } case DB_DOUBLE: