lkml.org 
[lkml]   [2008]   [Feb]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH UPDATED] printk: fix possible printk buffer overrun introduced with recursion check
    printk recursion detection prepends message to printk_buf and offsets
    printk_buf when actual message is printed but it forgets to trim
    buffer length accordingly. This can result in buffer overrun in
    extreme cases. Fix it.

    Signed-off-by: Tejun Heo <htejun@gmail.com>
    Acked-by: Ingo Molnar <mingo@elte.hu>
    ---
    Splitted out fix portion.

    kernel/printk.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/kernel/printk.c b/kernel/printk.c
    index bee3610..9adc2a4 100644
    --- a/kernel/printk.c
    +++ b/kernel/printk.c
    @@ -666,7 +666,7 @@ asmlinkage int vprintk(const char *fmt, va_list args)
    }
    /* Emit the output into the temporary buffer */
    printed_len += vscnprintf(printk_buf + printed_len,
    - sizeof(printk_buf), fmt, args);
    + sizeof(printk_buf) - printed_len, fmt, args);

    /*
    * Copy the output into log_buf. If the caller didn't provide

    \
     
     \ /
      Last update: 2008-02-14 02:35    [W:0.032 / U:32.044 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site