diff --git a/plugins/decompress/source/content/pl_functions.cpp b/plugins/decompress/source/content/pl_functions.cpp index 0d8972a1f..c57a1d20f 100644 --- a/plugins/decompress/source/content/pl_functions.cpp +++ b/plugins/decompress/source/content/pl_functions.cpp @@ -80,9 +80,10 @@ namespace hex::plugin::decompress { if (stream.avail_out != 0) break; - section.resize(section.size() * 2); - stream.next_out = section.data(); - stream.avail_out = section.size(); + const auto prevSectionSize = section.size(); + section.resize(prevSectionSize * 2); + stream.next_out = section.data() + prevSectionSize; + stream.avail_out = prevSectionSize; } return true; @@ -126,9 +127,10 @@ namespace hex::plugin::decompress { if (stream.avail_out != 0) break; - section.resize(section.size() * 2); - stream.next_out = reinterpret_cast(section.data()); - stream.avail_out = section.size(); + const auto prevSectionSize = section.size(); + section.resize(prevSectionSize * 2); + stream.next_out = reinterpret_cast(section.data()) + prevSectionSize; + stream.avail_out = prevSectionSize; } return true; @@ -173,9 +175,10 @@ namespace hex::plugin::decompress { if (stream.avail_out != 0) break; - section.resize(section.size() * 2); - stream.next_out = compressedData.data(); - stream.avail_out = compressedData.size(); + const auto prevSectionSize = section.size(); + section.resize(prevSectionSize * 2); + stream.next_out = section.data() + prevSectionSize; + stream.avail_out = prevSectionSize; } return true;