Red Hat Bugzilla – Bug 493088
Kprobes bugfixes backport from 2.6.29
Last modified: 2009-09-03 10:17:06 EDT
Description of problem:
Below two kprobes bugfix patches should be backported from 2.6.29.
Both of them is possible to cause critical kernel panic on x86-32.
prevent boosting kprobes on exception address
Don't boost at the addresses which are listed on exception tables,
because major page fault will occur on those addresses. In that case,
kprobes can not ensure that when instruction buffer can be freed since
some processes will sleep on the buffer.
kprobes-ia64 already has same check.
prevent kprobes from catching spurious page faults
Prevent kprobes from catching spurious faults which will cause infinite
recursive page-fault and memory corruption by stack overflow.
Version-Release number of selected component (if applicable):
is not needed to apply. It seems already fixed on RHEL5.3. Thanks,
Created attachment 340412 [details]
[RHEL5.4][PATCH] prevent boosting kprobes on exception address
Here is the patch(commit 30390880debce4a68fd23e87a787f27609e4bf4a
) ported from 2.6.29 to 2.6.18-139.el5.
Changes from original:
- change both of arch/i386/kernel/kprobes.c and arch/x86_64/kernel/kprobes.c
- include linux/module.h for search_exception_tables().
You can download this test kernel from http://people.redhat.com/dzickus/el5
Please do NOT transition this bugzilla state to VERIFIED until our QE team
has sent specific instructions indicating when to do so. However feel free
to provide a comment indicating that this fix has been verified.
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.