From 484115e636b02de927706100aeece6b0de03d0cc Mon Sep 17 00:00:00 2001 From: Matt Witherspoon <32485495+spoonincode@users.noreply.github.com> Date: Tue, 12 Mar 2024 23:45:14 -0400 Subject: [PATCH 1/2] fix usage of stack variable after return --- plugins/producer_api_plugin/producer_api_plugin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/producer_api_plugin/producer_api_plugin.cpp b/plugins/producer_api_plugin/producer_api_plugin.cpp index 65cbe2f58b..7e10d46357 100644 --- a/plugins/producer_api_plugin/producer_api_plugin.cpp +++ b/plugins/producer_api_plugin/producer_api_plugin.cpp @@ -63,6 +63,7 @@ using namespace eosio; auto result = api_handle.call_name(std::move(params)); #define INVOKE_R_R_D(api_handle, call_name, in_param) \ + const fc::microseconds http_max_response_time = http.get_max_response_time(); \ auto deadline = http_max_response_time == fc::microseconds::maximum() ? fc::time_point::maximum() \ : fc::time_point::now() + http_max_response_time; \ auto params = parse_params(body);\ @@ -91,7 +92,6 @@ void producer_api_plugin::plugin_startup() { // lifetime of plugin is lifetime of application auto& producer = app().get_plugin(); auto& http = app().get_plugin(); - fc::microseconds http_max_response_time = http.get_max_response_time(); app().get_plugin().add_api({ CALL_WITH_400(producer, producer_ro, producer, paused, From d80b1437b6f1e7538e5d0c7a1f79994edccd9bfa Mon Sep 17 00:00:00 2001 From: Matt Witherspoon <32485495+spoonincode@users.noreply.github.com> Date: Fri, 22 Mar 2024 22:47:33 -0400 Subject: [PATCH 2/2] explicit capture list --- plugins/producer_api_plugin/producer_api_plugin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/producer_api_plugin/producer_api_plugin.cpp b/plugins/producer_api_plugin/producer_api_plugin.cpp index 7e10d46357..cd59645a0b 100644 --- a/plugins/producer_api_plugin/producer_api_plugin.cpp +++ b/plugins/producer_api_plugin/producer_api_plugin.cpp @@ -23,7 +23,7 @@ using namespace eosio; #define CALL_WITH_400(api_name, category, api_handle, call_name, INVOKE, http_response_code) \ {std::string("/v1/" #api_name "/" #call_name), \ api_category::category, \ - [&](string&&, string&& body, url_response_callback&& cb) mutable { \ + [&http, &producer](string&&, string&& body, url_response_callback&& cb) mutable { \ try { \ INVOKE \ cb(http_response_code, fc::variant(result)); \