From eb1ac0cebc041e51989fcaadc6e739aab437f94b Mon Sep 17 00:00:00 2001 From: Kevin Heifner Date: Fri, 1 Jun 2018 00:05:25 -0500 Subject: [PATCH] Change unpack_action_data to use max stack buffer of 128 --- contracts/eosiolib/action.hpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/contracts/eosiolib/action.hpp b/contracts/eosiolib/action.hpp index b30c26b17..b216f8d0e 100644 --- a/contracts/eosiolib/action.hpp +++ b/contracts/eosiolib/action.hpp @@ -44,8 +44,10 @@ namespace eosio { */ template T unpack_action_data() { - char buffer[action_data_size()]; - read_action_data( buffer, sizeof(buffer) ); + constexpr size_t max_stack_buffer_size = 128; + size_t size = action_data_size(); + char* buffer = (char*)( max_stack_buffer_size < size ? malloc(size) : alloca(size) ); + read_action_data( buffer, size ); return unpack( buffer, sizeof(buffer) ); } -- GitLab