2023-01-31 12:02:03

by Tiezhu Yang

[permalink] [raw]
Subject: [PATCH] kprobes: Replace memcpy() with direct assignment

Just do a direct assignment, then give a chance to probe memcpy()
for some archs or kernel versions which do not blacklist memcpy().

Signed-off-by: Tiezhu Yang <[email protected]>
---
kernel/kprobes.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/kprobes.c b/kernel/kprobes.c
index 1c18ecf..5a3cf9f 100644
--- a/kernel/kprobes.c
+++ b/kernel/kprobes.c
@@ -407,8 +407,8 @@ static inline bool kprobe_unused(struct kprobe *p)
/* Keep all fields in the kprobe consistent. */
static inline void copy_kprobe(struct kprobe *ap, struct kprobe *p)
{
- memcpy(&p->opcode, &ap->opcode, sizeof(kprobe_opcode_t));
- memcpy(&p->ainsn, &ap->ainsn, sizeof(struct arch_specific_insn));
+ p->opcode = ap->opcode;
+ p->ainsn = ap->ainsn;
}

#ifdef CONFIG_OPTPROBES
--
2.1.0



2023-02-03 13:05:46

by Masami Hiramatsu

[permalink] [raw]
Subject: Re: [PATCH] kprobes: Replace memcpy() with direct assignment

On Tue, 31 Jan 2023 20:01:50 +0800
Tiezhu Yang <[email protected]> wrote:

> Just do a direct assignment, then give a chance to probe memcpy()
> for some archs or kernel versions which do not blacklist memcpy().
>

NACK, because this is not invoked from kprobe int3 handling code.

Thank you,

> Signed-off-by: Tiezhu Yang <[email protected]>
> ---
> kernel/kprobes.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/kprobes.c b/kernel/kprobes.c
> index 1c18ecf..5a3cf9f 100644
> --- a/kernel/kprobes.c
> +++ b/kernel/kprobes.c
> @@ -407,8 +407,8 @@ static inline bool kprobe_unused(struct kprobe *p)
> /* Keep all fields in the kprobe consistent. */
> static inline void copy_kprobe(struct kprobe *ap, struct kprobe *p)
> {
> - memcpy(&p->opcode, &ap->opcode, sizeof(kprobe_opcode_t));
> - memcpy(&p->ainsn, &ap->ainsn, sizeof(struct arch_specific_insn));
> + p->opcode = ap->opcode;
> + p->ainsn = ap->ainsn;
> }
>
> #ifdef CONFIG_OPTPROBES
> --
> 2.1.0
>


--
Masami Hiramatsu (Google) <[email protected]>