diff --git a/unpin_arm32.cpp b/unpin_arm32.cpp index 6705e45b41d31cc1e5e117b4a4f914115da030cd..fe643c493c895f1a0436475500bbbb465fdf765c 100644 --- a/unpin_arm32.cpp +++ b/unpin_arm32.cpp @@ -73,7 +73,10 @@ void UnpinArm32_t::HandlePcrelReloc(Instruction_t* from_insn, Relocation_t* relo uint8_t insn_bytes[insn_bytes_len]; // compiler disallows init on some platforms. // but memcpy should init it sufficiently. memcpy(insn_bytes, from_insn->getDataBits().c_str(), insn_bytes_len); - const auto full_insn=*(uint32_t*)insn_bytes; + auto full_insn=(uint32_t)0; + memcpy(&full_insn,insn_bytes, sizeof(full_insn)); + + const auto mask1 = (1<<1 )-1; const auto mask4 = (1<<4 )-1; const auto mask8 = (1<<8 )-1;