lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 20 Jul 2022 04:32:55 +0000
From:   <Divya.Koppera@...rochip.com>
To:     <richardcochran@...il.com>
CC:     <andrew@...n.ch>, <hkallweit1@...il.com>, <linux@...linux.org.uk>,
        <davem@...emloft.net>, <edumazet@...gle.com>, <kuba@...nel.org>,
        <pabeni@...hat.com>, <netdev@...r.kernel.org>,
        <linux-kernel@...r.kernel.org>, <UNGLinuxDriver@...rochip.com>,
        <Madhuri.Sripada@...rochip.com>
Subject: RE: [PATCH v2 net] net: phy: micrel: Fix warn: passing zero to
 PTR_ERR

Hi Richard,

> -----Original Message-----
> From: Richard Cochran <richardcochran@...il.com>
> Sent: Tuesday, July 19, 2022 7:26 PM
> To: Divya Koppera - I30481 <Divya.Koppera@...rochip.com>
> Cc: andrew@...n.ch; hkallweit1@...il.com; linux@...linux.org.uk;
> davem@...emloft.net; edumazet@...gle.com; kuba@...nel.org;
> pabeni@...hat.com; netdev@...r.kernel.org; linux-
> kernel@...r.kernel.org; UNGLinuxDriver
> <UNGLinuxDriver@...rochip.com>; Madhuri Sripada - I34878
> <Madhuri.Sripada@...rochip.com>
> Subject: Re: [PATCH v2 net] net: phy: micrel: Fix warn: passing zero to
> PTR_ERR
> 
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the
> content is safe
> 
> On Tue, Jul 19, 2022 at 05:30:52PM +0530, Divya Koppera wrote:
> > Handle the NULL pointer case
> >
> > Fixes New smatch warnings:
> > drivers/net/phy/micrel.c:2613 lan8814_ptp_probe_once() warn: passing
> zero to 'PTR_ERR'
> >
> > vim +/PTR_ERR +2613 drivers/net/phy/micrel.c
> >
> > Reported-by: kernel test robot <lkp@...el.com>
> > Reported-by: Dan Carpenter <dan.carpenter@...cle.com>
> > Fixes: ece19502834d ("net: phy: micrel: 1588 support for LAN8814 phy")
> > Signed-off-by: Divya Koppera <Divya.Koppera@...rochip.com>
> > ---
> > v1 -> v2:
> > - Handled NULL pointer case
> > - Changed subject line with net-next to net
> 
> This is not a genuine bug fix, and so it should target next-next.
> 
> > ---
> >  drivers/net/phy/micrel.c | 6 +++++-
> >  1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c index
> > e78d0bf69bc3..6be6ee156f40 100644
> > --- a/drivers/net/phy/micrel.c
> > +++ b/drivers/net/phy/micrel.c
> > @@ -2812,12 +2812,16 @@ static int lan8814_ptp_probe_once(struct
> > phy_device *phydev)
> >
> >       shared->ptp_clock = ptp_clock_register(&shared->ptp_clock_info,
> >                                              &phydev->mdio.dev);
> > -     if (IS_ERR_OR_NULL(shared->ptp_clock)) {
> > +     if (IS_ERR(shared->ptp_clock)) {
> >               phydev_err(phydev, "ptp_clock_register failed %lu\n",
> >                          PTR_ERR(shared->ptp_clock));
> >               return -EINVAL;
> >       }
> >
> > +     /* Check if PHC support is missing at the configuration level */
> > +     if (!shared->ptp_clock)
> > +             return 0;
> 
> This is cause a NULL pointer de-reference in lan8814_ts_info() when it calls
> 
>         info->phc_index = ptp_clock_index(shared->ptp_clock);
> 

NULL case handling seems to be redundant here because at starting of the function itself there is check for config support of ptp as below

static int lan8814_ptp_probe_once(struct phy_device *phydev)
{
        struct lan8814_shared_priv *shared = phydev->shared->priv;

        if (!IS_ENABLED(CONFIG_PTP_1588_CLOCK) ||
            !IS_ENABLED(CONFIG_NETWORK_PHY_TIMESTAMPING))
                return 0;


So chances of getting shared-> ptp_clock to be NULL is 0.

Let me know your thoughts. I'll remove this check in next revision if it is redundant.

> > +
> >       phydev_dbg(phydev, "successfully registered ptp clock\n");
> >
> >       shared->phydev = phydev;
> > --
> > 2.17.1
> >
> 
> Thanks,
> Richard

Powered by blists - more mailing lists