Compare commits

...

2 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
cb0d8a38f1 Fix stack-use-after-return in client_routes delete/set functions
Change lambda captures in set_client_routes and delete_client_routes to move
route_keys/route_entries into the inner lambda instead of capturing by reference.
This prevents use-after-return when the with_retry coroutine suspends.

Co-authored-by: mykaul <4655593+mykaul@users.noreply.github.com>
2025-12-21 07:54:34 +00:00
copilot-swe-agent[bot]
12787302bf Initial plan 2025-12-21 07:50:24 +00:00

View File

@@ -105,7 +105,7 @@ seastar::future<> service::client_routes_service::delete_client_routes_inner(con
seastar::future<> service::client_routes_service::set_client_routes(const std::vector<service::client_routes_service::client_route_entry>& route_entries) {
return container().invoke_on(0, [route_entries = std::move(route_entries)] (service::client_routes_service& cr) -> future<> {
return cr.with_retry([&] {
return cr.with_retry([&cr, route_entries = std::move(route_entries)] () mutable {
return cr.set_client_routes_inner(route_entries);
});
});
@@ -113,7 +113,7 @@ seastar::future<> service::client_routes_service::set_client_routes(const std::v
seastar::future<> service::client_routes_service::delete_client_routes(const std::vector<service::client_routes_service::client_route_key>& route_keys) {
return container().invoke_on(0, [route_keys = std::move(route_keys)] (service::client_routes_service& cr) -> future<> {
return cr.with_retry([&] {
return cr.with_retry([&cr, route_keys = std::move(route_keys)] () mutable {
return cr.delete_client_routes_inner(route_keys);
});
});