From: Vedansh Bhartia Date: Thu, 13 Jul 2023 11:47:06 +0000 (+0530) Subject: rgw: Fix potential null dereference in rgw/driver/dbstore/sqlite/statement.cc X-Git-Tag: v19.3.0~353^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f2b5f0727401fd3ab975976555864c21860f3579;p=ceph.git rgw: Fix potential null dereference in rgw/driver/dbstore/sqlite/statement.cc Signed-off-by: Vedansh Bhartia --- diff --git a/src/rgw/driver/dbstore/sqlite/statement.cc b/src/rgw/driver/dbstore/sqlite/statement.cc index 3e44f4c0b6e5..199774f4d9ad 100644 --- a/src/rgw/driver/dbstore/sqlite/statement.cc +++ b/src/rgw/driver/dbstore/sqlite/statement.cc @@ -118,10 +118,10 @@ void eval0(const DoutPrefixProvider* dpp, const stmt_execution& stmt) if (ec != sqlite::errc::done) { const char* errmsg = ::sqlite3_errmsg(db); ldpp_dout(dpp, 20) << "evaluation failed: " << errmsg - << " (" << ec << ")\nstatement: " << sql.get() << dendl; + << " (" << ec << ")\nstatement: " << (sql ? sql.get() : "") << dendl; throw sqlite::error(errmsg, ec); } - ldpp_dout(dpp, 20) << "evaluation succeeded: " << sql.get() << dendl; + ldpp_dout(dpp, 20) << "evaluation succeeded: " << (sql ? sql.get() : "") << dendl; } void eval1(const DoutPrefixProvider* dpp, const stmt_execution& stmt) @@ -137,10 +137,10 @@ void eval1(const DoutPrefixProvider* dpp, const stmt_execution& stmt) sqlite3* db = ::sqlite3_db_handle(stmt.get()); const char* errmsg = ::sqlite3_errmsg(db); ldpp_dout(dpp, 1) << "evaluation failed: " << errmsg << " (" << ec - << ")\nstatement: " << sql.get() << dendl; + << ")\nstatement: " << (sql ? sql.get() : "") << dendl; throw sqlite::error(errmsg, ec); } - ldpp_dout(dpp, 20) << "evaluation succeeded: " << sql.get() << dendl; + ldpp_dout(dpp, 20) << "evaluation succeeded: " << (sql ? sql.get() : "") << dendl; } int column_int(const stmt_execution& stmt, int column) @@ -181,14 +181,14 @@ auto read_text_rows(const DoutPrefixProvider* dpp, sqlite3* db = ::sqlite3_db_handle(stmt.get()); const char* errmsg = ::sqlite3_errmsg(db); ldpp_dout(dpp, 1) << "evaluation failed: " << errmsg << " (" << ec - << ")\nstatement: " << sql.get() << dendl; + << ")\nstatement: " << (sql ? sql.get() : "") << dendl; throw sqlite::error(errmsg, ec); } entries[count] = column_text(stmt, 0); ++count; } ldpp_dout(dpp, 20) << "statement evaluation produced " << count - << " results: " << sql.get() << dendl; + << " results: " << (sql ? sql.get() : "") << dendl; return entries.first(count); }