• Julia Lawall's avatar
    drivers/char/agp/parisc-agp.c: eliminate memory leak · 338e4fab
    Julia Lawall authored
    alloc_pci_dev allocates some memory, so that memory should be freed before
    leaving the function in an error case.
    
    A simplified version of the semantic match that finds this problem is:
    (http://coccinelle.lip6.fr/)
    
    // <smpl>
    @r exists@
    local idexpression x;
    expression E;
    identifier f1;
    iterator I;
    @@
    
    x = alloc_pci_dev(...);
    <... when != x
         when != true (x == NULL || ...)
         when != if (...) { <+...x...+> }
         when != I (...) { <+...x...+> }
    (
     x == NULL
    |
     x == E
    |
     x->f1
    )
    ...>
    * return ...;
    // </smpl>
    Signed-off-by: default avatarJulia Lawall <julia@diku.dk>
    Dan Carpenter <error27@gmail.com>
    Dave Airlie <airlied@linux.ie>
    Cc: Helge Deller <deller@gmx.de>
    Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarKyle McMartin <kyle@redhat.com>
    338e4fab
parisc-agp.c 9.97 KB