From c228e4d51809eedff0f2b9086d76e24d8be9efea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Botond=20D=C3=A9nes?= Date: Wed, 28 Feb 2024 06:46:48 -0500 Subject: [PATCH] cql3: select_statement: mutation_fragments_select_statement: fix use-after-return Don't capture stack variables by reference... it can (and will) explode in your face. --- cql3/statements/select_statement.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cql3/statements/select_statement.cc b/cql3/statements/select_statement.cc index 2822757678..9bb8a93652 100644 --- a/cql3/statements/select_statement.cc +++ b/cql3/statements/select_statement.cc @@ -1761,7 +1761,7 @@ mutation_fragments_select_statement::do_execute(query_processor& qp, service::qu *command, key_ranges))) { return do_query({}, qp.proxy(), _schema, command, std::move(key_ranges), cl, {timeout, state.get_permit(), state.get_client_state(), state.get_trace_state(), {}, {}}) - .then(wrap_result_to_error_message([&, this, erm_keepalive] (service::storage_proxy_coordinator_query_result&& qr) { + .then(wrap_result_to_error_message([this, erm_keepalive, now, slice = command->slice] (service::storage_proxy_coordinator_query_result&& qr) mutable { cql3::selection::result_set_builder builder(*_selection, now); query::result_view::consume(*qr.query_result, std::move(slice), cql3::selection::result_set_builder::visitor(builder, *_schema, *_selection));