Message ID | 20240821131042.1464529-1-make24@iscas.ac.cn (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | phy: qualcomm: Check NULL ptr on lvts_data in qcom_ipq806x_usb_phy_probe() | expand |
On Wed, Aug 21, 2024 at 09:50:27AM -0500, Bjorn Andersson wrote: > On Wed, Aug 21, 2024 at 09:10:42PM GMT, Ma Ke wrote: > > of_device_get_match_data() can return NULL if of_match_device failed, and > > the pointer 'data' was dereferenced without checking against NULL. Add > > checking of pointer 'data' in qcom_ipq806x_usb_phy_probe(). > > How do you create the platform_device such that this happens? > I have the same question and this sounds like warning produced by automated checks of some sort... (and these kind of patch are suspicious given what happens in the last few years) In practice this can never happen... of_match_device can't fail as it's called only if a matching compatible is found hence the thing MUST be present BEFORE probe is even called. > > > > > Cc: stable@vger.kernel.org > > Fixes: ef19b117b834 ("phy: qualcomm: add qcom ipq806x dwc usb phy driver") > > Signed-off-by: Ma Ke <make24@iscas.ac.cn> > > --- > > drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c b/drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c > > index 06392ed7c91b..9b9fd9c1b1f7 100644 > > --- a/drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c > > +++ b/drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c > > @@ -492,6 +492,8 @@ static int qcom_ipq806x_usb_phy_probe(struct platform_device *pdev) > > return -ENOMEM; > > > > data = of_device_get_match_data(&pdev->dev); > > + if (!data) > > + return -ENODEV; > > > > phy_dwc3->dev = &pdev->dev; > > > > -- > > 2.25.1 > > > >
On Wed, Aug 21, 2024 at 09:10:42PM GMT, Ma Ke wrote: > of_device_get_match_data() can return NULL if of_match_device failed, and > the pointer 'data' was dereferenced without checking against NULL. Add > checking of pointer 'data' in qcom_ipq806x_usb_phy_probe(). How do you create the platform_device such that this happens? Regards, Bjorn > > Cc: stable@vger.kernel.org > Fixes: ef19b117b834 ("phy: qualcomm: add qcom ipq806x dwc usb phy driver") > Signed-off-by: Ma Ke <make24@iscas.ac.cn> > --- > drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c b/drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c > index 06392ed7c91b..9b9fd9c1b1f7 100644 > --- a/drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c > +++ b/drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c > @@ -492,6 +492,8 @@ static int qcom_ipq806x_usb_phy_probe(struct platform_device *pdev) > return -ENOMEM; > > data = of_device_get_match_data(&pdev->dev); > + if (!data) > + return -ENODEV; > > phy_dwc3->dev = &pdev->dev; > > -- > 2.25.1 > >
diff --git a/drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c b/drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c index 06392ed7c91b..9b9fd9c1b1f7 100644 --- a/drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c +++ b/drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c @@ -492,6 +492,8 @@ static int qcom_ipq806x_usb_phy_probe(struct platform_device *pdev) return -ENOMEM; data = of_device_get_match_data(&pdev->dev); + if (!data) + return -ENODEV; phy_dwc3->dev = &pdev->dev;
of_device_get_match_data() can return NULL if of_match_device failed, and the pointer 'data' was dereferenced without checking against NULL. Add checking of pointer 'data' in qcom_ipq806x_usb_phy_probe(). Cc: stable@vger.kernel.org Fixes: ef19b117b834 ("phy: qualcomm: add qcom ipq806x dwc usb phy driver") Signed-off-by: Ma Ke <make24@iscas.ac.cn> --- drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c | 2 ++ 1 file changed, 2 insertions(+)