aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstrongswan/plugins/sqlite/sqlite_database.c
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2014-04-30 09:30:17 +0200
committerTobias Brunner <tobias@strongswan.org>2014-04-30 09:37:32 +0200
commit24ea377458452e5f45992538572d57faf6ed297a (patch)
tree8f6c34778061550311ba7fcffaa23ae1cec2f4bf /src/libstrongswan/plugins/sqlite/sqlite_database.c
parentf2eb2266531648fe41bf574118ca0370c2f8e293 (diff)
downloadstrongswan-24ea377458452e5f45992538572d57faf6ed297a.tar.bz2
strongswan-24ea377458452e5f45992538572d57faf6ed297a.tar.xz
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.
Diffstat (limited to 'src/libstrongswan/plugins/sqlite/sqlite_database.c')
-rw-r--r--src/libstrongswan/plugins/sqlite/sqlite_database.c6
1 files 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: