From 11840d2be781a5e48561c33d7ff7593f3f7493e4 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Tue, 19 Mar 2024 14:21:04 -0400 Subject: [PATCH] Clean up SSQLite3::~SSQLite3 * The loop will run once or twice * There used to be some cleanup that was done in the failure case but it has been gone for a while * Clarify logic * Report error message from sqlite3 --- pdns/ssqlite3.cc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pdns/ssqlite3.cc b/pdns/ssqlite3.cc index 2fecbba5bfa5..ec28058ea85e 100644 --- a/pdns/ssqlite3.cc +++ b/pdns/ssqlite3.cc @@ -319,17 +319,17 @@ void SSQLite3::setLog(bool state) // Destructor. SSQLite3::~SSQLite3() { - for (int tries = 0;; ++tries) { + for (int tried = 0;; ++tried) { int ret = sqlite3_close(m_pDB); - if (ret != SQLITE_OK) { - if (tries != 0 || ret != SQLITE_BUSY) { // if we have SQLITE_BUSY, and a working m_Pstmt, try finalize - cerr << "Unable to close down sqlite connection: " << ret << endl; - abort(); - } - } - else { + if (ret == SQLITE_OK) { break; } + cerr << "SQLite3 error state while tearing down database: " << SSQLite3ErrorString(m_pDB) << endl; + if (tried == 0 && ret == SQLITE_BUSY) { + continue; + } + cerr << "Unable to close down sqlite connection: " << ret << endl; + abort(); } }