CachedInterpreterEmitter: Fix `std::memcpy` UB

I wasn't aware that even with a size of zero, it's still not safe to pass a nullptr to `std::memcpy`. When `CachedInterpreterEmitter::PoisonCallback` is written, UB is happening.
This commit is contained in:
mitaclaw 2024-09-01 19:35:56 -07:00
parent 7d08377341
commit 5a95c5dd14
1 changed files with 2 additions and 0 deletions

View File

@ -19,6 +19,8 @@ void CachedInterpreterEmitter::Write(AnyCallback callback, const void* operands,
} }
std::memcpy(m_code, &callback, sizeof(callback)); std::memcpy(m_code, &callback, sizeof(callback));
m_code += sizeof(callback); m_code += sizeof(callback);
if (size == 0)
return;
std::memcpy(m_code, operands, size); std::memcpy(m_code, operands, size);
m_code += size; m_code += size;
} }