~singpolyma/biboumi

2a62b8b0823435e14675ae9bbe281ddd37206fcf — louiz’ 6 years ago 9648fd2
Fix a sqlite3 leak when the database fails to open
1 files changed, 2 insertions(+), 1 deletions(-)

M src/database/database.cpp
M src/database/database.cpp => src/database/database.cpp +2 -1
@@ 23,12 23,13 @@ void Database::open(const std::string& filename)
  // not, just leave things untouched
  sqlite3* new_db;
  auto res = sqlite3_open_v2(filename.data(), &new_db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, nullptr);
  Database::close();
  if (res != SQLITE_OK)
    {
      log_error("Failed to open database file ", filename, ": ", sqlite3_errmsg(new_db));
      sqlite3_close_v2(new_db);
      throw std::runtime_error("");
    }
  Database::close();
  Database::db = new_db;
  Database::muc_log_lines.create(Database::db);
  Database::muc_log_lines.upgrade(Database::db);