Module Name: src Committed By: christos Date: Sat Apr 4 15:33:36 UTC 2015
Modified Files: src/sys/dev/usb: umass_isdata.c Log Message: fix leak, found by Brainy. To generate a diff of this commit: cvs rdiff -u -r1.30 -r1.31 src/sys/dev/usb/umass_isdata.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/usb/umass_isdata.c diff -u src/sys/dev/usb/umass_isdata.c:1.30 src/sys/dev/usb/umass_isdata.c:1.31 --- src/sys/dev/usb/umass_isdata.c:1.30 Fri Sep 12 12:40:38 2014 +++ src/sys/dev/usb/umass_isdata.c Sat Apr 4 11:33:36 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: umass_isdata.c,v 1.30 2014/09/12 16:40:38 skrll Exp $ */ +/* $NetBSD: umass_isdata.c,v 1.31 2015/04/04 15:33:36 christos Exp $ */ /* * TODO: @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: umass_isdata.c,v 1.30 2014/09/12 16:40:38 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: umass_isdata.c,v 1.31 2015/04/04 15:33:36 christos Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -195,8 +195,11 @@ umass_isdata_attach(struct umass_softc * USETW(req.wLength, sizeof *cf); err = usbd_do_request(sc->sc_udev, &req, cf); - if (err) - return (EIO); + if (err) { + sc->bus = NULL; + free(scbus, M_DEVBUF); + return EIO; + } DPRINTF(("umass_wd_attach info:\n EventNotification=0x%02x " "ExternalClock=0x%02x ATAInitTimeout=0x%02x\n" " ATAMisc1=0x%02x ATAMajorCommand=0x%02x "