lkml.org 
[lkml]   [2008]   [Feb]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH REPOST] printk: fix possible printk buffer overrun introduced with recursion check
    Hello, Ingo.

    Ingo Molnar wrote:
    > but i'm not sure i agree with the moving of these variables inside
    > vprintk:
    >
    >> -/* cpu currently holding logbuf_lock */
    >> -static volatile unsigned int printk_cpu = UINT_MAX;
    >> -
    >> -const char printk_recursion_bug_msg [] =
    >> - KERN_CRIT "BUG: recent printk recursion!\n";
    >> -static int printk_recursion_bug;
    >> -
    >> asmlinkage int vprintk(const char *fmt, va_list args)
    >> {
    >> + /* cpu currently holding logbuf_lock */
    >> + static volatile unsigned int printk_cpu = UINT_MAX;
    >> + static const char printk_recursion_bug_msg [] =
    >> + KERN_CRIT "BUG: recent printk recursion!\n";
    >> + static int printk_recursion_bug;
    >> static int log_level_unknown = 1;
    >> static char printk_buf[1024];
    >
    > it's easy to miss a static variable inside a function local variables

    I find that difficult to agree. As long as static ones are put above
    all local ones, they are visually distinctive enough. static variables
    used by a single function are usually declared in the function all
    through the source tree.

    > block. It would b ebetter to move log_level_unknown and printk_buf
    > _outside_ the function, to the other ones. [and to mark
    > printk_recursion_bug_msg static]

    Well, I thought it was an obvious clean up. Time to split this patch
    up, I guess.

    Thanks.

    --
    tejun


    \
     
     \ /
      Last update: 2008-02-14 01:13    [W:0.025 / U:0.868 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site