projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
09ca1b1
)
powerpc/kprobes: Handle error returned by set_memory_rox()
author
Christophe Leroy
<christophe.leroy@csgroup.eu>
Fri, 16 Feb 2024 10:13:28 +0000
(11:13 +0100)
committer
Michael Ellerman
<mpe@ellerman.id.au>
Thu, 22 Feb 2024 10:55:33 +0000
(21:55 +1100)
set_memory_rox() can fail.
In case it fails, free allocated memory and return NULL.
Link:
https://github.com/KSPP/linux/issues/7
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link:
https://msgid.link/b4907cf4339bd086abc40430d91311436cb0c18e.1708078401.git.christophe.leroy@csgroup.eu
arch/powerpc/kernel/kprobes.c
patch
|
blob
|
history
diff --git
a/arch/powerpc/kernel/kprobes.c
b/arch/powerpc/kernel/kprobes.c
index b20ee72e873a1b881283ded2c8ffef94acf187f7..bbca90a5e2ec07a59903b87bf2d50f6a194235fd 100644
(file)
--- a/
arch/powerpc/kernel/kprobes.c
+++ b/
arch/powerpc/kernel/kprobes.c
@@
-134,10
+134,16
@@
void *alloc_insn_page(void)
if (!page)
return NULL;
- if (strict_module_rwx_enabled())
- set_memory_rox((unsigned long)page, 1);
+ if (strict_module_rwx_enabled())
{
+
int err =
set_memory_rox((unsigned long)page, 1);
+ if (err)
+ goto error;
+ }
return page;
+error:
+ module_memfree(page);
+ return NULL;
}
int arch_prepare_kprobe(struct kprobe *p)