Enforce non-empty data section

This commit is contained in:
Rodrigo Q. Saramago 2022-12-06 13:43:52 +01:00 committed by Daniel Kirchner
parent 1499bf7b59
commit 8a1bbf1345

View File

@ -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);
}