Message ID | 20210611093626.579176-10-yangyingliang@huawei.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | ASoC: fsl: Use devm_platform_get_and_ioremap_resource() | expand |
On Fri, Jun 11, 2021 at 4:32 AM Yang Yingliang <yangyingliang@huawei.com> wrote: > rx_res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "rxfifo"); > tx_res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "txfifo"); > + if (!rx_res || !tx_res) { > + dev_err(dev, "Invalid resource\n"); > + return -EINVAL; > + } If platform_get_resource_byname() returns an error, it's probably because the name cannot be found. So I think this error message is more accurate: "could not find rxfifo or txfifo resource"
diff --git a/sound/soc/fsl/fsl_xcvr.c b/sound/soc/fsl/fsl_xcvr.c index df7c189d97dd..2e9061c5ed74 100644 --- a/sound/soc/fsl/fsl_xcvr.c +++ b/sound/soc/fsl/fsl_xcvr.c @@ -1202,6 +1202,10 @@ static int fsl_xcvr_probe(struct platform_device *pdev) rx_res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "rxfifo"); tx_res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "txfifo"); + if (!rx_res || !tx_res) { + dev_err(dev, "Invalid resource\n"); + return -EINVAL; + } xcvr->dma_prms_rx.chan_name = "rx"; xcvr->dma_prms_tx.chan_name = "tx"; xcvr->dma_prms_rx.addr = rx_res->start;
It will cause null-ptr-deref if platform_get_resource_byname() returns NULL, we need check the return value. Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> --- sound/soc/fsl/fsl_xcvr.c | 4 ++++ 1 file changed, 4 insertions(+)