From 8a1bbf1345c9ea9a83c99d120dc462bd612fb4df Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Tue, 6 Dec 2022 13:43:52 +0100 Subject: [PATCH] Enforce non-empty data section --- libevmasm/Assembly.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libevmasm/Assembly.cpp b/libevmasm/Assembly.cpp index df289c20d..7c2752af4 100644 --- a/libevmasm/Assembly.cpp +++ b/libevmasm/Assembly.cpp @@ -774,10 +774,15 @@ LinkerObject const& Assembly::assemble() const toBigEndian(ret.bytecode.size(), r); } - auto const dataLength = ret.bytecode.size() - dataStart; + auto dataLength = ret.bytecode.size() - dataStart; if (m_eofVersion.has_value()) { - assertThrow(/*dataLength >= 0 && */ dataLength <= 0xffff, AssemblyException, "Invalid data section size."); + if (dataLength == 0) + { + ret.bytecode.push_back(0); + dataLength++; + } + assertThrow(dataLength > 0u && dataLength <= 0xffff, AssemblyException, "Invalid data section size."); toBigEndian(dataLength, eofDataLength); }