Skip to content

Commit 5fc512e

Browse files
authored
Merge pull request #282 from SChernykh/fix-ub
Fixed UB in ARM64 JIT compiler
2 parents d3c9648 + 8f91d31 commit 5fc512e

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

src/jit_compiler_a64.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -709,7 +709,8 @@ void JitCompilerA64::h_IMUL_RCP(Instruction& instr, uint32_t& codePos)
709709
const uint32_t literal_id = (ImulRcpLiteralsEnd - literalPos) / sizeof(uint64_t);
710710

711711
literalPos -= sizeof(uint64_t);
712-
*(uint64_t*)(code + literalPos) = (q << shift) + ((r << shift) / divisor);
712+
const uint64_t randomx_reciprocal = (q << shift) + ((r << shift) / divisor);
713+
memcpy(code + literalPos, &randomx_reciprocal, sizeof(randomx_reciprocal));
713714

714715
if (literal_id < 12)
715716
{

src/jit_compiler_a64.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ namespace randomx {
8181

8282
static void emit64(uint64_t val, uint8_t* code, uint32_t& codePos)
8383
{
84-
*(uint64_t*)(code + codePos) = val;
84+
memcpy(code + codePos, &val, sizeof(val));
8585
codePos += sizeof(val);
8686
}
8787

0 commit comments

Comments
 (0)