| From c4108e69b67b07dc12067d16329c70897a4da3d0 Mon Sep 17 00:00:00 2001 |
| From: Navid Emamdoost <navid.emamdoost@gmail.com> |
| Date: Mon, 23 Sep 2019 15:09:58 -0500 |
| Subject: [PATCH] nbd: prevent memory leak |
| |
| commit 03bf73c315edca28f47451913177e14cd040a216 upstream. |
| |
| In nbd_add_socket when krealloc succeeds, if nsock's allocation fail the |
| reallocted memory is leak. The correct behaviour should be assigning the |
| reallocted memory to config->socks right after success. |
| |
| Reviewed-by: Josef Bacik <josef@toxicpanda.com> |
| Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com> |
| Signed-off-by: Jens Axboe <axboe@kernel.dk> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c |
| index cc83ef2373f3..41e62c9407e2 100644 |
| --- a/drivers/block/nbd.c |
| +++ b/drivers/block/nbd.c |
| @@ -993,14 +993,15 @@ static int nbd_add_socket(struct nbd_device *nbd, unsigned long arg, |
| sockfd_put(sock); |
| return -ENOMEM; |
| } |
| + |
| + config->socks = socks; |
| + |
| nsock = kzalloc(sizeof(struct nbd_sock), GFP_KERNEL); |
| if (!nsock) { |
| sockfd_put(sock); |
| return -ENOMEM; |
| } |
| |
| - config->socks = socks; |
| - |
| nsock->fallback_index = -1; |
| nsock->dead = false; |
| mutex_init(&nsock->tx_lock); |
| -- |
| 2.7.4 |
| |