android_kernel_xiaomi_sm8350/arch/i386
Jim Keniston 8bf1101bd5 [PATCH] kprobes: Fix return probes on sys_execve
Fix a bug in kprobes that can cause an Oops or even a crash when a return
probe is installed on one of the following functions: sys_execve,
do_execve, load_*_binary, flush_old_exec, or flush_thread.  The fix is to
remove the call to kprobe_flush_task() in flush_thread().  This fix has
been tested on all architectures for which the return-probes feature has
been implemented (i386, x86_64, ppc64, ia64).  Please apply.

BACKGROUND

Up to now, we have called kprobe_flush_task() under two situations: when a
task exits, and when it execs.  Flushing kretprobe_instances on exit is
correct because (a) do_exit() doesn't return, and (b) one or more
return-probed functions may be active when a task calls do_exit().  Neither
is the case for sys_execve() and its callees.

Initially, the mistaken call to kprobe_flush_task() on exec was harmless
because we put the "real" return address of each active probed function
back in the stack, just to be safe, when we recycled its
kretprobe_instance.  When support for ppc64 and ia64 was added, this safety
measure couldn't be employed, and was eventually dropped even for i386 and
x86_64.  sys_execve() and its callees were informally blacklisted for
return probes until this fix was developed.

Acked-by: Prasanna S Panchamukhi <prasanna@in.ibm.com>
Signed-off-by: Jim Keniston <jkenisto@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-23 16:08:39 -08:00
..
boot [PATCH] fbdev: Resurrect hooks to get EDID from firmware 2005-09-09 13:57:59 -07:00
crypto [PATCH] arch/i386/crypto/aes.c: fix sparse warnings 2005-06-25 16:24:59 -07:00
kernel [PATCH] kprobes: Fix return probes on sys_execve 2005-11-23 16:08:39 -08:00
lib [LIB]: Consolidate _atomic_dec_and_lock() 2005-09-14 21:47:01 -07:00
mach-default [PATCH] useless includes of linux/irq.h in arch/i386 2005-09-26 18:29:50 -07:00
mach-es7000 [PATCH] ES7000 platform update 2005-10-30 17:37:12 -08:00
mach-generic [PATCH] x86: sutomatically enable bigsmp when we have more than 8 CPUs 2005-09-05 00:06:10 -07:00
mach-visws [PATCH] useless includes of linux/irq.h in arch/i386 2005-09-26 18:29:50 -07:00
mach-voyager [PATCH] useless includes of linux/irq.h in arch/i386 2005-09-26 18:29:50 -07:00
math-emu [PATCH] i386: inline assembler: cleanup and encapsulate descriptor and task register management 2005-09-05 00:06:11 -07:00
mm [PATCH] arch/i386/mm/init.c: small cleanups 2005-11-13 18:14:13 -08:00
oprofile [PATCH] Move Kprobes and Oprofile to "Instrumentation Support" menu 2005-11-07 07:53:35 -08:00
pci [PATCH] PCI: fix for Toshiba ohci1394 quirk 2005-11-10 16:09:18 -08:00
power [PATCH] x86: add MCE resume 2005-11-07 07:53:30 -08:00
defconfig [ACPI] delete CONFIG_ACPI_PCI 2005-08-25 12:40:44 -04:00
Kconfig [PATCH] move pm_register/etc. to CONFIG_PM_LEGACY, pm_legacy.h 2005-11-13 18:14:10 -08:00
Kconfig.cpu [PATCH] uml: reuse i386 cpu-specific tuning 2005-10-30 17:37:16 -08:00
Kconfig.debug [PATCH] Move Kprobes and Oprofile to "Instrumentation Support" menu 2005-11-07 07:53:35 -08:00
Makefile [PATCH] uml: reuse i386 cpu-specific tuning 2005-10-30 17:37:16 -08:00
Makefile.cpu [PATCH] i386: use -mcpu, not -mtune, for GCCs older than 3.4 2005-10-30 17:37:16 -08:00