>-----Original Message----- >From: linux-usb-owner@xxxxxxxxxxxxxxx [mailto:linux-usb-owner@xxxxxxxxxxxxxxx] On Behalf Of Greg >Kroah-Hartman >Sent: Friday, December 11, 2009 4:26 PM >To: linux-usb@xxxxxxxxxxxxxxx >Cc: Julia Lawall; Greg Kroah-Hartman >Subject: [PATCH 107/122] USB: ehci-omap.c: introduce missing kfree >Importance: High > >From: Julia Lawall <julia@xxxxxxx> > >Error handling code following a kzalloc should free the allocated data. > >The semantic match that finds this problem is as follows: >(http://www.emn.fr/x-info/coccinelle/) Impressive. Wondering if sparse do such kind of things? > >// <smpl> >@r exists@ >local idexpression x; >statement S; >expression E; >identifier f,f1,l; >position p1,p2; >expression *ptr != NULL; >@@ > >x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...); >... >if (x == NULL) S ><... when != x > when != if (...) { <+...x...+> } >( >x->f1 = E >| > (x->f1 == NULL || ...) >| > f(...,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: Julia Lawall <julia@xxxxxxx> >Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx> >--- > drivers/usb/host/ehci-omap.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > >diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c >index 7ba8df3..12f1ad2 100644 >--- a/drivers/usb/host/ehci-omap.c >+++ b/drivers/usb/host/ehci-omap.c >@@ -558,7 +558,7 @@ static int ehci_hcd_omap_probe(struct platform_device *pdev) > omap = kzalloc(sizeof(*omap), GFP_KERNEL); > if (!omap) { > ret = -ENOMEM; >- goto err_create_hcd; >+ goto err_disabled; > } > > hcd = usb_create_hcd(&ehci_omap_hc_driver, &pdev->dev, >@@ -653,6 +653,7 @@ err_ioremap: > usb_put_hcd(hcd); > > err_create_hcd: >+ kfree(omap); > err_disabled: > err_pdata: > return ret; >-- >1.6.5.5 > >-- >To unsubscribe from this list: send the line "unsubscribe linux-usb" in >the body of a message to majordomo@xxxxxxxxxxxxxxx >More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html