diff options
author | Heinrich Schuchardt <xypron.glpk@gmx.de> | 2014-01-28 15:16:46 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-02-07 14:08:46 -0500 |
commit | 2a7470d9ffe506ff895f4a27dcf3840cb3ea097f (patch) | |
tree | acb64e430cf418eaca64786f63f373802341ca3c | |
parent | 54de9af9f0d7a91e898b6e02199be16dc26a4870 (diff) |
usbip/userspace/libsrc/names.c: memory leak
revised patch
p is freed if NULL.
p is leaked if second calloc fails.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/staging/usbip/userspace/libsrc/names.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/staging/usbip/userspace/libsrc/names.c b/drivers/staging/usbip/userspace/libsrc/names.c index 3c8d28b771e0..81ff8522405c 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) | |||
169 | struct pool *p; | 169 | struct pool *p; |
170 | 170 | ||
171 | p = calloc(1, sizeof(struct pool)); | 171 | p = calloc(1, sizeof(struct pool)); |
172 | if (!p) { | 172 | if (!p) |
173 | free(p); | ||
174 | return NULL; | 173 | return NULL; |
175 | } | ||
176 | 174 | ||
177 | p->mem = calloc(1, size); | 175 | p->mem = calloc(1, size); |
178 | if (!p->mem) | 176 | if (!p->mem) { |
177 | free(p); | ||
179 | return NULL; | 178 | return NULL; |
179 | } | ||
180 | 180 | ||
181 | p->next = pool_head; | 181 | p->next = pool_head; |
182 | pool_head = p; | 182 | pool_head = p; |