From 64185df958ba94fd58c021428f6b25028b7409c0 Mon Sep 17 00:00:00 2001
From: Brian Carrier <carrier@sleuthkit.org>
Date: Tue, 8 Nov 2011 23:09:11 -0500
Subject: [PATCH] reset prepared statement patch by Peter Martel

---
 tools/autotools/tsk_loaddb.cpp | 1 -
 tsk3/auto/auto_db.cpp          | 2 +-
 tsk3/auto/db_sqlite.cpp        | 2 ++
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/tools/autotools/tsk_loaddb.cpp b/tools/autotools/tsk_loaddb.cpp
index ca1e5987f..b31ebf103 100644
--- a/tools/autotools/tsk_loaddb.cpp
+++ b/tools/autotools/tsk_loaddb.cpp
@@ -163,7 +163,6 @@ main(int argc, char **argv1)
 
     if (autoDb->startAddImage(argc - OPTIND, &argv[OPTIND], imgtype, ssize)) {
         tsk_error_print(stderr);
-        autoDb->revertAddImage();
         exit(1);
     }
 
diff --git a/tsk3/auto/auto_db.cpp b/tsk3/auto/auto_db.cpp
index 528bb192c..ee703f3ff 100644
--- a/tsk3/auto/auto_db.cpp
+++ b/tsk3/auto/auto_db.cpp
@@ -288,7 +288,7 @@ TSK_RETVAL_ENUM
 
 /**
  * Start the process to add image/file metadata to database. Reverts
- * all changes on error or TSK_STOP flag. When runProcess()
+ * all changes on error. When runProcess()
  * returns, user must call either commitAddImage() to commit the changes,
  * or revertAddImage() to revert them.
  * @returns 1 on error and 0 on success
diff --git a/tsk3/auto/db_sqlite.cpp b/tsk3/auto/db_sqlite.cpp
index 73a7bfb83..71a1f6031 100644
--- a/tsk3/auto/db_sqlite.cpp
+++ b/tsk3/auto/db_sqlite.cpp
@@ -495,6 +495,8 @@ int
             || attempt(sqlite3_step(m_selectFilePreparedStmt), SQLITE_ROW,
                 "Error selecting file id by meta_addr: %s (result code %d)\n"))
         {
+            // Statement may be used again, even after error
+            sqlite3_reset(m_selectFilePreparedStmt);
             return 1;
         }
 
-- 
GitLab