[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <3580ada7-3ad8-2caa-8af2-32896b752f2f@huawei.com>
Date: Mon, 16 May 2022 22:01:41 +0800
From: Yang Yingliang <yangyingliang@...wei.com>
To: <linux-kernel@...r.kernel.org>, <stable@...r.kernel.org>
CC: <baruch@...s.co.il>, <gregkh@...uxfoundation.org>
Subject: Re: [PATCH 4.9/4.14/4.19/5.4] tty/serial: digicolor: fix possible
null-ptr-deref in digicolor_uart_probe()
I use a wrong commit id, please ignore this patch.
On 2022/5/16 22:10, Yang Yingliang wrote:
> commit 7c25a0b89a487878b0691e6524fb5a8827322194 upstream.
>
> It will cause null-ptr-deref when using 'res', if platform_get_resource()
> returns NULL, so move using 'res' after devm_ioremap_resource() that
> will check it to avoid null-ptr-deref.
> And use devm_platform_get_and_ioremap_resource() to simplify code.
>
> Fixes: 5930cb3511df ("serial: driver for Conexant Digicolor USART")
> Signed-off-by: Yang Yingliang <yangyingliang@...wei.com>
> Reviewed-by: Baruch Siach <baruch@...s.co.il>
> Cc: stable <stable@...r.kernel.org>
> Link: https://lore.kernel.org/r/20220505124621.1592697-1-yangyingliang@huawei.com
> Signed-off-by: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
> ---
> v1:
> These stable versions don't have devm_platform_get_and_ioremap_resource(),
> so just move using 'res' after devm_ioremap_resource().
> ---
> drivers/tty/serial/digicolor-usart.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/tty/serial/digicolor-usart.c b/drivers/tty/serial/digicolor-usart.c
> index 50ec5f1ac77f4..794864fac6250 100644
> --- a/drivers/tty/serial/digicolor-usart.c
> +++ b/drivers/tty/serial/digicolor-usart.c
> @@ -476,10 +476,10 @@ static int digicolor_uart_probe(struct platform_device *pdev)
> return PTR_ERR(uart_clk);
>
> res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> - dp->port.mapbase = res->start;
> dp->port.membase = devm_ioremap_resource(&pdev->dev, res);
> if (IS_ERR(dp->port.membase))
> return PTR_ERR(dp->port.membase);
> + dp->port.mapbase = res->start;
>
> irq = platform_get_irq(pdev, 0);
> if (irq < 0)
Powered by blists - more mailing lists