Re: [PATCH] net: spi: fix a potential NULL pointer dereference

From: Kangjie Lu
Date: Fri Mar 22 2019 - 23:10:41 EST




> On Mar 10, 2019, at 1:57 AM, Kangjie Lu <kjlu@xxxxxxx> wrote:
>
> In case alloc_workqueue fails to allocate the work queue and
> returns NULL, the fix releases the resources and returns
> -ENOMEM.
>
> Signed-off-by: Kangjie Lu <kjlu@xxxxxxx>
> ---
> drivers/net/can/spi/mcp251x.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/net/can/spi/mcp251x.c b/drivers/net/can/spi/mcp251x.c
> index e90817608645..2737b9a20dfe 100644
> --- a/drivers/net/can/spi/mcp251x.c
> +++ b/drivers/net/can/spi/mcp251x.c
> @@ -962,6 +962,14 @@ static int mcp251x_open(struct net_device *net)
>
> priv->wq = alloc_workqueue("mcp251x_wq", WQ_FREEZABLE | WQ_MEM_RECLAIM,
> 0);
> + if (unlikely(!priv->wq)) {
> + dev_err(&spi->dev, "failed to allocate work queue\n");
> + mcp251x_power_enable(priv->transceiver, 0);
> + close_candev(net);
> + ret = -ENOMEM;
> + goto open_unlock;
> + }
> +

Can someone review this patch?


> INIT_WORK(&priv->tx_work, mcp251x_tx_work_handler);
> INIT_WORK(&priv->restart_work, mcp251x_restart_work_handler);
>
> --
> 2.17.1
>