From 1bff4c9537b50e7f9f2d9f9b86b75839764b5b50 Mon Sep 17 00:00:00 2001 From: Tim Wojtulewicz Date: Tue, 13 May 2025 14:31:47 -0700 Subject: [PATCH] SQLite: Fix some string-sizing issues --- src/storage/backend/sqlite/SQLite.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/storage/backend/sqlite/SQLite.cc b/src/storage/backend/sqlite/SQLite.cc index d3ca702df7..02125d0475 100644 --- a/src/storage/backend/sqlite/SQLite.cc +++ b/src/storage/backend/sqlite/SQLite.cc @@ -55,8 +55,11 @@ OperationResult SQLite::DoOpen(OpenResultCallback* cb, RecordValPtr options) { auto tuning_params = backend_options->GetField("tuning_params")->ToMap(); for ( const auto& [k, v] : tuning_params ) { auto ks = k->AsListVal()->Idx(0)->AsStringVal(); + auto ks_sv = ks->ToStdStringView(); auto vs = v->AsStringVal(); - std::string cmd = util::fmt("pragma %s = %s", ks->ToStdStringView().data(), vs->ToStdStringView().data()); + auto vs_sv = vs->ToStdStringView(); + std::string cmd = util::fmt("pragma %.*s = %.*s", static_cast(ks_sv.size()), ks_sv.data(), + static_cast(vs_sv.size()), vs_sv.data()); if ( int res = sqlite3_exec(db, cmd.c_str(), NULL, NULL, &errorMsg); res != SQLITE_OK ) { std::string err = util::fmt("Error executing tuning pragma statement: %s", errorMsg); @@ -92,7 +95,7 @@ OperationResult SQLite::DoOpen(OpenResultCallback* cb, RecordValPtr options) { int i = 0; for ( const auto& stmt : statements ) { sqlite3_stmt* ps; - if ( auto prep_res = CheckError(sqlite3_prepare_v2(db, stmt.c_str(), stmt.size(), &ps, NULL)); + if ( auto prep_res = CheckError(sqlite3_prepare_v2(db, stmt.c_str(), static_cast(stmt.size()), &ps, NULL)); prep_res.code != ReturnCode::SUCCESS ) { Close(nullptr); return prep_res;