[lkml]   [2011]   [Nov]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Subject[PATCH -v2 0/4] x86: check stack overflows more reliably

    This patch series adds the following three features about stack
    overflow checking. The (3) feature works if the sysctl parameter
    is enabled.

    (1) add user mode vm check
    The kernel stack overflow is checked in stack_overflow_check(),
    which may wrongly detect the overflow if the user stack pointer
    points to the kernel stack intentionally or accidentally.
    To avoid this misdetection, bail out early if the user stack is

    (2) check stack overflow in detail
    Currently, only kernel stack is checked for the overflow,
    which is not sufficient for systems that need a high reliability.
    To enhance it, expand stack overflow checking to IRQ and
    exception stacks.

    (3) panic on stack overflow
    Currently, kernel messages are output on the detection of
    stack overflow. Similarly, its's not sufficient for systems
    that need a high reliability since it may corrupt data and the
    additional corruption may occur due to reading them. To enhance
    reliability, cause a panic for the overflows according to the
    sysctl parameter. In addition, it is also useful for analyzing
    the reason why it occurred using kdump which is a crash dumping
    mechanism. This option is disabled by default in sysctl.

    Changes in v2:
    - Remove DEBUG_STACKOVERFLOW_DETAIL option in Kconfig.
    - Change the default overflow checking to the detail-check instead
    of original one that only checks the kernel stack overflow.
    - Remove the changes related to binary sysctl.



    Mitsuo Hayasaka (4):
    x86: cleanup the range of stack overflow checking
    x86: panic on detection of stack overflow
    x86: check stack overflow in detail
    [BUGFIX] x86: add user_mode_vm check in stack_overflow_check

    Documentation/sysctl/kernel.txt | 14 ++++++++++++++
    arch/x86/Kconfig.debug | 7 +++++--
    arch/x86/kernel/irq_32.c | 2 ++
    arch/x86/kernel/irq_64.c | 36 ++++++++++++++++++++++++++++++------
    include/linux/kernel.h | 1 +
    kernel/sysctl.c | 9 +++++++++
    6 files changed, 61 insertions(+), 8 deletions(-)

    Mitsuo Hayasaka (

     \ /
      Last update: 2011-11-29 07:05    [W:0.034 / U:12.724 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site