Re: [PATCH] scsi, block: fix memory leak of sdpk on when gd fails to allocate

From: Bart Van Assche
Date: Wed Feb 15 2017 - 13:11:47 EST


On Fri, 2017-02-03 at 19:38 +0000, Colin King wrote:
> From: Colin Ian King <colin.king@xxxxxxxxxxxxx>
>
> On an allocation failure of gd, the current exit path is via out_free_devt
> which leaves sdpk still allocated and hence it gets leaked. Fix this by
> correcting the order of resource free'ing with a change in the error exit
> path labels.
>
> Detected by CoverityScan, CID#1399519 ("Resource Leak")
>
> Fixes: 0dba1314d4f81115dc ("scsi, block: fix duplicate bdi name registration crashes")
> Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
> ---
> drivers/scsi/sd.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
> index cb6e68d..99e1206 100644
> --- a/drivers/scsi/sd.c
> +++ b/drivers/scsi/sd.c
> @@ -3213,10 +3213,10 @@ static int sd_probe(struct device *dev)
> sd_devt = NULL;
> out_put:
> put_disk(gd);
> - out_free:
> - kfree(sdkp);
> out_free_devt:
> kfree(sd_devt);
> + out_free:
> + kfree(sdkp);
> out:
> scsi_autopm_put_device(sdp);
> return error;

Hello Colin,

This patch looks fine to me. But since it is a fix for a patch that exists
in Jens' tree and that is not yet upstream, please resubmit it to Jens.

Bart.