[PATCH 1/1] Memory leak in usbip_exported_device_new

2014-02-27 Thread xypron . glpk
From: Heinrich Schuchardt 

Memory was leaked and a device not closed.

Signed-off-by: Heinrich Schuchardt 
---
 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

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/1] usbip/userspace/libsrc/names.c: memory leak

2014-01-28 Thread xypron . glpk
From: Heinrich Schuchardt 

revised patch

p is freed if NULL.
p is leaked if second calloc fails.

Signed-off-by: Heinrich Schuchardt 
---
 drivers/staging/usbip/userspace/libsrc/names.c |8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/usbip/userspace/libsrc/names.c 
b/drivers/staging/usbip/userspace/libsrc/names.c
index 3c8d28b..81ff852 100644
--- a/drivers/staging/usbip/userspace/libsrc/names.c
+++ b/drivers/staging/usbip/userspace/libsrc/names.c
@@ -169,14 +169,14 @@ static void *my_malloc(size_t size)
struct pool *p;
 
p = calloc(1, sizeof(struct pool));
-   if (!p) {
-   free(p);
+   if (!p)
return NULL;
-   }
 
p->mem = calloc(1, size);
-   if (!p->mem)
+   if (!p->mem) {
+   free(p);
return NULL;
+   }
 
p->next = pool_head;
pool_head = p;
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/1] usbip/userspace/libsrc/names.c: memory leak

2014-01-27 Thread xypron . glpk
From: Heinrich Schuchardt 

p is freed if NULL.
p is leaked if second calloc fails.

Signed-off-by: Heinrich Schuchardt 
---
 drivers/staging/usbip/userspace/libsrc/names.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/usbip/userspace/libsrc/names.c 
b/drivers/staging/usbip/userspace/libsrc/names.c
index 3c8d28b..b2904e8 100644
--- a/drivers/staging/usbip/userspace/libsrc/names.c
+++ b/drivers/staging/usbip/userspace/libsrc/names.c
@@ -170,12 +170,12 @@ static void *my_malloc(size_t size)
 
p = calloc(1, sizeof(struct pool));
if (!p) {
-   free(p);
return NULL;
}
 
p->mem = calloc(1, size);
if (!p->mem)
+   free(p);
return NULL;
 
p->next = pool_head;
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html