diff --git a/src/libs/libAmpr.cpp b/src/libs/libAmpr.cpp index 107fd310d..2412cfce7 100644 --- a/src/libs/libAmpr.cpp +++ b/src/libs/libAmpr.cpp @@ -1416,8 +1416,11 @@ static int ReadHostFileToGuest(const std::string& host_path, uint64_t file_offse return OK; } - std::vector buffer( - static_cast(std::min(APR_HOST_READ_CHUNK_SIZE, readable))); + static thread_local std::vector buffer; + const auto buffer_size = static_cast(std::min(APR_HOST_READ_CHUNK_SIZE, readable)); + if (buffer.size() < buffer_size) { + buffer.resize(buffer_size); + } while (*bytes_read < readable) { const auto request = static_cast(std::min(buffer.size(), readable - *bytes_read));