mirror of
https://github.com/Zygo/bees.git
synced 2025-05-17 21:35:45 +02:00
Apparently reinterpret_cast<uint64_t> sign-extends 32-bit pointers. This is OK when running on a 32-bit kernel that will truncate the pointer to 32 bits, but when running on a 64-bit kernel, the extra bits are interpreted as part of the (now very invalid) address. Use <uintptr_t> instead, which is unsigned, integer, and the same word size as the arch's pointer type. Ordinary numeric conversion can take it from there, filling the rest of the word with zeros. Signed-off-by: Zygo Blaxell <bees@furryterror.org>