From: Heinrich Schuchardt <xypron.g...@gmx.de>

Memory was leaked and a device not closed.

Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de>
---
 drivers/staging/usbip/userspace/libsrc/usbip_host_driver.c |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/staging/usbip/userspace/libsrc/usbip_host_driver.c 
b/drivers/staging/usbip/userspace/libsrc/usbip_host_driver.c
index 71a449c..6a92f0f 100644
--- a/drivers/staging/usbip/userspace/libsrc/usbip_host_driver.c
+++ b/drivers/staging/usbip/userspace/libsrc/usbip_host_driver.c
@@ -102,6 +102,7 @@ static int32_t read_attr_usbip_status(struct 
usbip_usb_device *udev)
 static struct usbip_exported_device *usbip_exported_device_new(char *sdevpath)
 {
        struct usbip_exported_device *edev = NULL;
+       struct usbip_exported_device *edev_old;
        size_t size;
        int i;
 
@@ -127,8 +128,10 @@ static struct usbip_exported_device 
*usbip_exported_device_new(char *sdevpath)
        size = sizeof(*edev) + edev->udev.bNumInterfaces *
                sizeof(struct usbip_usb_interface);
 
+       edev_old = edev;
        edev = realloc(edev, size);
        if (!edev) {
+               edev = edev_old;
                dbg("realloc failed");
                goto err;
        }
-- 
1.7.10.4

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to