aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMasami Hiramatsu <[email protected]>2013-05-22 08:34:13 +0000
committerRalf Baechle <[email protected]>2013-05-22 12:48:30 +0200
commit22047b85170280b0ca59ce4befd0fa1f71a4ec16 (patch)
treef8f8c3c0cea02ab234d353e4a29315f292ded065
parent087d990b371c59edbfc119600e2d2eda18366292 (diff)
kprobes/mips: Fix to check double free of insn slot
Fix to check double free of insn_slot at arch_remove_kprobe as other arches do. Signed-off-by: Masami Hiramatsu <[email protected]> Cc: David Daney <[email protected]> Cc: Maneesh Soni <[email protected]> Cc: Victor Kamensky <[email protected]> Cc: [email protected] Cc: Ingo Molnar <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/5293/ Signed-off-by: Ralf Baechle <[email protected]>
-rw-r--r--arch/mips/kernel/kprobes.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/mips/kernel/kprobes.c b/arch/mips/kernel/kprobes.c
index 12bc4ebdf55b..1f8187ab0997 100644
--- a/arch/mips/kernel/kprobes.c
+++ b/arch/mips/kernel/kprobes.c
@@ -207,7 +207,10 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p)
void __kprobes arch_remove_kprobe(struct kprobe *p)
{
- free_insn_slot(p->ainsn.insn, 0);
+ if (p->ainsn.insn) {
+ free_insn_slot(p->ainsn.insn, 0);
+ p->ainsn.insn = NULL;
+ }
}
static void save_previous_kprobe(struct kprobe_ctlblk *kcb)