lkml.org 
[lkml]   [2009]   [Jan]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] module: clean up initialization of variable


    Impact: clean up

    On Mon, 5 Jan 2009, Sam Ravnborg wrote:
    >
    > Fully ageed on the readability.
    > I happen to trigger this as an error in the sparc code.
    > But I see the same warning also in generic code.
    >
    > >From kernel/module.c:
    > /* Suck in entire file: we'll want most of it. */
    > /* vmalloc barfs on "unusual" numbers. Check here */
    > if (len > 64 * 1024 * 1024 || (hdr = vmalloc(len)) == NULL)
    > return ERR_PTR(-ENOMEM);
    >
    >
    > This gives following warning:
    > kernel/module.c: In function `load_module':
    > kernel/module.c:1842: warning: 'hdr' might be used uninitialized in this function

    The above is caused by having the branch tracer on and the following type
    of initialization:

    if (x || !(y = init_me())
    return;

    use_me(y);

    This is sloppy initialization because it initializes, not only in an
    if condition, but also as the second part of a complex conditional.

    This patch makes the code a bit easier to read.

    Signed-off-by: Steven Rostedt <srostedt@redhat.com>
    Reported-by: Sam Ravnborg <sam@ravnborg.org>

    diff --git a/kernel/module.c b/kernel/module.c
    index 9712c52..112d6cd 100644
    --- a/kernel/module.c
    +++ b/kernel/module.c
    @@ -1864,7 +1864,10 @@ static noinline struct module *load_module(void __user *umod,

    /* Suck in entire file: we'll want most of it. */
    /* vmalloc barfs on "unusual" numbers. Check here */
    - if (len > 64 * 1024 * 1024 || (hdr = vmalloc(len)) == NULL)
    + if (len > 64 * 1024 * 1024)
    + return ERR_PTR(-ENOMEM);
    + hdr = vmalloc(len);
    + if (hdr == NULL)
    return ERR_PTR(-ENOMEM);
    if (copy_from_user(hdr, umod, len) != 0) {
    err = -EFAULT;

    \
     
     \ /
      Last update: 2009-01-05 21:33    [W:4.437 / U:0.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site