Add missing sqlite3_blob_close()

Fixes #33.
This commit is contained in:
Andrew Bettison 2012-10-30 16:12:40 +10:30
parent 934ae73a3d
commit 3c7eb7b058
2 changed files with 9 additions and 4 deletions

View File

@ -226,9 +226,14 @@ int rhizome_opendb()
RETURN(0);
}
int rhizome_close_db(){
if (rhizome_db){
// TODO if we prepare statements globally we need to make sure any prepared statements are closed first.
int rhizome_close_db()
{
if (rhizome_db) {
sqlite3_stmt *stmt = NULL;
while ((stmt = sqlite3_next_stmt(rhizome_db, stmt))) {
const char *sql = sqlite3_sql(stmt);
WARNF("closing Rhizome db with unfinalised statement: %s", sql ? sql : "BLOB");
}
int r = sqlite3_close(rhizome_db);
if (r != SQLITE_OK)
return WHYF("Failed to close sqlite database, %s",sqlite3_errmsg(rhizome_db));
@ -354,7 +359,6 @@ sqlite3_stmt *_sqlite_prepare_loglevel(struct __sourceloc __whence, int log_leve
while (1) {
switch (sqlite3_prepare_v2(rhizome_db, strbuf_str(stmt), -1, &statement, NULL)) {
case SQLITE_OK:
case SQLITE_DONE:
return statement;
case SQLITE_BUSY:
case SQLITE_LOCKED:

View File

@ -998,6 +998,7 @@ void rhizome_direct_http_dispatch(rhizome_direct_sync_request *r)
goto closeit;
}
}
sqlite3_blob_close(blob);
/* Send final mime boundary */
len=snprintf(buffer,8192,"\r\n--%s--\r\n",boundary);