Enforce non-empty data section

This commit is contained in:
Rodrigo Q. Saramago
2022-12-06 19:59:12 +01:00
parent 6a44bb26ae
commit f2f6931015
+7 -2
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);
}