Skip to content

Commit e46daee

Browse files
keesRussell King
authored andcommitted
ARM: 8806/1: kprobes: Fix false positive with FORTIFY_SOURCE
The arm compiler internally interprets an inline assembly label as an unsigned long value, not a pointer. As a result, under CONFIG_FORTIFY_SOURCE, the address of a label has a size of 4 bytes, which was tripping the runtime checks. Instead, we can just cast the label (as done with the size calculations earlier). Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1639397 Reported-by: William Cohen <[email protected]> Fixes: 6974f0c ("include/linux/string.h: add the option of fortified string.h functions") Cc: [email protected] Acked-by: Laura Abbott <[email protected]> Acked-by: Masami Hiramatsu <[email protected]> Tested-by: William Cohen <[email protected]> Signed-off-by: Kees Cook <[email protected]> Signed-off-by: Russell King <[email protected]>
1 parent 6510223 commit e46daee

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

arch/arm/probes/kprobes/opt-arm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ int arch_prepare_optimized_kprobe(struct optimized_kprobe *op, struct kprobe *or
247247
}
248248

249249
/* Copy arch-dep-instance from template. */
250-
memcpy(code, &optprobe_template_entry,
250+
memcpy(code, (unsigned char *)optprobe_template_entry,
251251
TMPL_END_IDX * sizeof(kprobe_opcode_t));
252252

253253
/* Adjust buffer according to instruction. */

0 commit comments

Comments
 (0)