• Julia Lawall's avatar
    arch/powerpc/sysdev/ehv_pic.c: add missing kfree · e3854b6e
    Julia Lawall authored
    At this point, ehv_pic has been allocated but not stored anywhere, so it
    should be freed before leaving the function.
    
    A simplified version of the semantic match that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)
    
    // <smpl>
    @exists@
    local idexpression x;
    statement S,S1;
    expression E;
    identifier fl;
    expression *ptr != NULL;
    @@
    
    x = \(kmalloc\|kzalloc\|kcalloc\)(...);
    ...
    if (x == NULL) S
    <... when != x
         when != if (...) { <+...kfree(x)...+> }
         when any
         when != true x == NULL
    x->fl
    ...>
    (
    if (x == NULL) S1
    |
    if (...) { ... when != x
                   when forall
    (
     return \(0\|<+...x...+>\|ptr\);
    |
    * return ...;
    )
    }
    )
    // </smpl>
    Signed-off-by: default avatarJulia Lawall <julia@diku.dk>
    Acked-by: default avatarTimur Tabi <timur@freescale.com>
    Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
    e3854b6e
ehv_pic.c 7.34 KB