RE: [PATCH][next] soc: fsl: dpio: fix memory leak of a struct qbman on error exit path

From: Leo Li
Date: Tue Feb 19 2019 - 15:57:42 EST




> -----Original Message-----
> From: Colin King <colin.king@xxxxxxxxxxxxx>
> Sent: Tuesday, February 19, 2019 8:05 AM
> To: Roy Pledge <roy.pledge@xxxxxxx>; Leo Li <leoyang.li@xxxxxxx>;
> linuxppc-dev@xxxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> Cc: kernel-janitors@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: [PATCH][next] soc: fsl: dpio: fix memory leak of a struct qbman on
> error exit path
>
> From: Colin Ian King <colin.king@xxxxxxxxxxxxx>
>
> Currently the error check for a null reg leaks a struct qbman that was
> allocated earlier. Fix this by kfree'ing p on the error exit path.
>
> Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>

Applied for next. Thanks.

> ---
> drivers/soc/fsl/dpio/qbman-portal.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/soc/fsl/dpio/qbman-portal.c
> b/drivers/soc/fsl/dpio/qbman-portal.c
> index 0bddb85c0ae5..5a73397ae79e 100644
> --- a/drivers/soc/fsl/dpio/qbman-portal.c
> +++ b/drivers/soc/fsl/dpio/qbman-portal.c
> @@ -180,6 +180,7 @@ struct qbman_swp *qbman_swp_init(const struct
> qbman_swp_desc *d)
> reg = qbman_read_register(p, QBMAN_CINH_SWP_CFG);
> if (!reg) {
> pr_err("qbman: the portal is not enabled!\n");
> + kfree(p);
> return NULL;
> }
>
> --
> 2.20.1