Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tty/serial: digicolor: fix possible null-ptr-deref in digicolor_uart_probe()

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@huawei.com>
Reviewed-by: Baruch Siach <baruch@tkos.co.il>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20220505124621.1592697-1-yangyingliang@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Yang Yingliang and committed by
Greg Kroah-Hartman
447ee151 672c0c51

+2 -3
+2 -3
drivers/tty/serial/digicolor-usart.c
··· 471 471 if (IS_ERR(uart_clk)) 472 472 return PTR_ERR(uart_clk); 473 473 474 - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 475 - dp->port.mapbase = res->start; 476 - dp->port.membase = devm_ioremap_resource(&pdev->dev, res); 474 + dp->port.membase = devm_platform_get_and_ioremap_resource(pdev, 0, &res); 477 475 if (IS_ERR(dp->port.membase)) 478 476 return PTR_ERR(dp->port.membase); 477 + dp->port.mapbase = res->start; 479 478 480 479 irq = platform_get_irq(pdev, 0); 481 480 if (irq < 0)