From b21571d3982414b0ccb707b414972b2c89b14e19 Mon Sep 17 00:00:00 2001 From: Sangwan Kwon Date: Tue, 25 Aug 2020 14:59:45 +0900 Subject: [PATCH] Fix coverity defects - Unchecked return value Change-Id: I1a2e196e80174e12fa48020bdc583669e05460f6 Signed-off-by: Sangwan Kwon --- src/osquery/sql/sqlite_util.cpp | 9 ++++++--- src/osquery/sql/tests/sqlite_util_tests.cpp | 21 ++++++++++++++------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/osquery/sql/sqlite_util.cpp b/src/osquery/sql/sqlite_util.cpp index 3821438..8fb7791 100644 --- a/src/osquery/sql/sqlite_util.cpp +++ b/src/osquery/sql/sqlite_util.cpp @@ -14,7 +14,6 @@ #include #include -#include #include #include @@ -22,6 +21,8 @@ #include +#include + namespace osquery { using OpReg = QueryPlanner::Opcode::Register; @@ -273,13 +274,15 @@ SQLiteDBInstance::SQLiteDBInstance(sqlite3*& db, Mutex& mtx) static inline void openOptimized(sqlite3*& db) { - sqlite3_open(":memory:", &db); + if (sqlite3_open(":memory:", &db) != SQLITE_OK) + ERROR(VIST) << "[osquery] error: " << sqlite3_errmsg(db); std::string settings; for (const auto& setting : kMemoryDBSettings) { settings += "PRAGMA " + setting.first + "=" + setting.second + "; "; } - sqlite3_exec(db, settings.c_str(), nullptr, nullptr, nullptr); + if (sqlite3_exec(db, settings.c_str(), nullptr, nullptr, nullptr) != SQLITE_OK) + ERROR(VIST) << "[osquery] error: " << sqlite3_errmsg(db); } void SQLiteDBInstance::init() diff --git a/src/osquery/sql/tests/sqlite_util_tests.cpp b/src/osquery/sql/tests/sqlite_util_tests.cpp index c577ae0..eea2d8c 100644 --- a/src/osquery/sql/tests/sqlite_util_tests.cpp +++ b/src/osquery/sql/tests/sqlite_util_tests.cpp @@ -17,6 +17,8 @@ #include #include +#include + namespace osquery { class SQLiteUtilTests : public testing::Test { public: @@ -37,7 +39,9 @@ std::shared_ptr getTestDBC() }; for (auto q : queries) { - sqlite3_exec(dbc->db(), q.c_str(), nullptr, nullptr, &err); + if (sqlite3_exec(dbc->db(), q.c_str(), nullptr, nullptr, &err) != SQLITE_OK) + ERROR(VIST) << "[osquery] error: " << sqlite3_errmsg(dbc->db()); + if (err != nullptr) { throw std::domain_error(std::string("Cannot create testing DBC's db: ") + err); @@ -91,11 +95,12 @@ TEST_F(SQLiteUtilTests, test_reset) auto internal_db = SQLiteDBManager::get()->db(); ASSERT_NE(nullptr, internal_db); - sqlite3_exec(internal_db, - "create view test_view as select 'test';", - nullptr, - nullptr, - nullptr); + if (sqlite3_exec(internal_db, + "create view test_view as select 'test';", + nullptr, + nullptr, + nullptr) != SQLITE_OK) + ERROR(VIST) << "[osquery] error: " << sqlite3_errmsg(internal_db); SQLiteDBManager::resetPrimary(); auto instance = SQLiteDBManager::get(); @@ -150,7 +155,9 @@ TEST_F(SQLiteUtilTests, test_get_test_db_result_stream) auto results = getTestDBResultStream(); for (auto r : results) { char* err_char = nullptr; - sqlite3_exec(dbc->db(), (r.first).c_str(), nullptr, nullptr, &err_char); + if (sqlite3_exec(dbc->db(), (r.first).c_str(), nullptr, nullptr, &err_char) != SQLITE_OK) + ERROR(VIST) << "[osquery] error: " << sqlite3_errmsg(dbc->db()); + EXPECT_TRUE(err_char == nullptr); if (err_char != nullptr) { sqlite3_free(err_char); -- 2.34.1