diff options
Diffstat (limited to 'files/unit_test/unit_test.h')
-rw-r--r-- | files/unit_test/unit_test.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/files/unit_test/unit_test.h b/files/unit_test/unit_test.h index 87907fa1..0a8df4d2 100644 --- a/files/unit_test/unit_test.h +++ b/files/unit_test/unit_test.h @@ -11,7 +11,7 @@ #ifndef UNIT_TEST_UNIT_TEST_H_ // NOLINT #define UNIT_TEST_UNIT_TEST_H_ -#ifdef WIN32 +#ifdef _WIN32 #include <windows.h> #else #include <sys/resource.h> @@ -111,10 +111,13 @@ inline int fastrand() { return static_cast<int>((fastrand_seed >> 16) & 0xffff); } +// ubsan fails if dst is unaligned unless we use uint8 static inline void MemRandomize(uint8_t* dst, int64_t len) { int64_t i; for (i = 0; i < len - 1; i += 2) { - *reinterpret_cast<uint16_t*>(dst) = fastrand(); + int r = fastrand(); + dst[0] = static_cast<uint8_t>(r); + dst[1] = static_cast<uint8_t>(r >> 8); dst += 2; } for (; i < len; ++i) { |