Re: [PATCH v2] staging: pi433: fix race condition in pi433_open

From: Dan Carpenter
Date: Wed Jun 20 2018 - 05:10:48 EST


On Tue, Jun 19, 2018 at 10:33:26PM -0400, Hugo Lefeuvre wrote:
> @@ -1178,6 +1152,11 @@ static int pi433_probe(struct spi_device *spi)
> device->tx_active = false;
> device->interrupt_rx_allowed = false;
>
> + /* init rx buffer */
> + device->rx_buffer = kmalloc(MAX_MSG_SIZE, GFP_KERNEL);
> + if (!device->rx_buffer)
> + return -ENOMEM;

We need to free device.

> +
> /* init wait queues */
> init_waitqueue_head(&device->tx_wait_queue);
> init_waitqueue_head(&device->rx_wait_queue);
> @@ -1280,6 +1259,7 @@ static int pi433_probe(struct spi_device *spi)
> minor_failed:
> free_gpio(device);
> GPIO_failed:
> + kfree(device->rx_buffer);
> kfree(device);
>
> return retval;

regards,
dan carpenter