From 67c0dfbe7f7bbcaca497bdb29e45c8d45874a7b3 Mon Sep 17 00:00:00 2001 From: Attila Molnar Date: Fri, 7 Oct 2016 19:14:51 -0400 Subject: m_sqlite: Fix possible memory leak when opening a database fails --- modules/extra/sqlite.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'modules') diff --git a/modules/extra/sqlite.cpp b/modules/extra/sqlite.cpp index 59acbf43f..2cd93923b 100644 --- a/modules/extra/sqlite.cpp +++ b/modules/extra/sqlite.cpp @@ -176,7 +176,16 @@ SQLiteService::SQLiteService(Module *o, const Anope::string &n, const Anope::str { int db = sqlite3_open_v2(database.c_str(), &this->sql, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, 0); if (db != SQLITE_OK) - throw SQL::Exception("Unable to open SQLite database " + database + ": " + sqlite3_errmsg(this->sql)); + { + Anope::string exstr = "Unable to open SQLite database " + database; + if (this->sql) + { + exstr += ": "; + exstr += sqlite3_errmsg(this->sql); + sqlite3_close(this->sql); + } + throw SQL::Exception(exstr); + } } SQLiteService::~SQLiteService() -- cgit