> [    8.134886]  arch_prepare_optimized_kprobe+0xd5/0x171
> [    8.134886]  arch_prepare_optimized_kprobe+0xd5/0x171

Probably this:

        /* Copy arch-dep-instance from template */
        memcpy(buf, &optprobe_template_entry, TMPL_END_IDX);

Not a real bug, just technically undefined because these are u32:

typedef u32 kprobe_opcode_t;

extern __visible kprobe_opcode_t optprobe_template_entry;
extern __visible kprobe_opcode_t optprobe_template_val;
extern __visible kprobe_opcode_t optprobe_template_call;
extern __visible kprobe_opcode_t optprobe_template_end;
extern __visible kprobe_opcode_t optprobe_template_sub_sp;
extern __visible kprobe_opcode_t optprobe_template_add_sp;
extern __visible kprobe_opcode_t optprobe_template_restore_begin;
extern __visible kprobe_opcode_t optprobe_template_restore_orig_insn;
extern __visible kprobe_opcode_t optprobe_template_restore_end;

Could be switched to unknown size arrays like optprobe_template_entry[]
but it might be best to just mark the kprobe code with #define
__NO_FORTIFY.

Reply via email to