Re: [PATCH] riscv: kprobe: Fixup misaligned load text

From: Björn Töpel
Date: Thu Feb 02 2023 - 09:36:39 EST


Jessica Clarke <jrtc27@xxxxxxxxxx> writes:

>> + p->opcode = *insn++;
>> + if (GET_INSN_LENGTH(p->opcode) == 4)
>> + p->opcode |= *insn << 16;
>
> *insn gets promoted to int not unsigned so this is UB if bit 15 is set.

Ugh. Good catch! I guess we can't get rid of *that* explicit cast to
kprobe_opcode_t here...