• J
    drivers/usb/dwc3/dwc3-pci.c: introduce missing kfree · 5632c827
    Julia Lawall 提交于
    Glue needs to be freed on exiting the function in an error case.
    Furthermore, pci, which is the first argument to the probe function should
    not be freed before leaveing the function, as it is reused at the call
    site.  So the free of pci is changed to free glue instead.
    
    A simplified version of the semantic match that finds the problem is as
    follows: (http://coccinelle.lip6.fr)
    
    // <smpl>
    @r exists@
    local idexpression x;
    statement S;
    identifier f1;
    position p1,p2;
    expression *ptr != NULL;
    @@
    
    x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...);
    ...
    if (x == NULL) S
    <... when != x
         when != if (...) { <+...x...+> }
    x->f1
    ...>
    (
     return \(0\|<+...x...+>\|ptr\);
    |
     return@p2 ...;
    )
    
    @script:python@
    p1 << r.p1;
    p2 << r.p2;
    @@
    
    print "* file: %s kmalloc %s return %s" % (p1[0].file,p1[0].line,p2[0].line)
    // </smpl>
    Signed-off-by: NJulia Lawall <julia@diku.dk>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
    5632c827
dwc3-pci.c 4.9 KB