diff options
author | Tobias Brunner <tobias@strongswan.org> | 2014-04-30 09:30:17 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2014-04-30 09:37:32 +0200 |
commit | 24ea377458452e5f45992538572d57faf6ed297a (patch) | |
tree | 8f6c34778061550311ba7fcffaa23ae1cec2f4bf /src/libstrongswan/plugins/sqlite/sqlite_database.c | |
parent | f2eb2266531648fe41bf574118ca0370c2f8e293 (diff) | |
download | strongswan-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.c | 6 |
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: |