Re: [PATCH net-next v18 07/13] net: ethtool: Introduce a command to list PHYs on an interface

From: Eric Dumazet
Date: Tue Sep 10 2024 - 13:33:31 EST


On Tue, Sep 10, 2024 at 7:20 PM Maxime Chevallier
<maxime.chevallier@xxxxxxxxxxx> wrote:
>
> Hello Eric,
>
> On Tue, 10 Sep 2024 18:41:03 +0200
> Eric Dumazet <edumazet@xxxxxxxxxx> wrote:
>
> > > +int ethnl_phy_doit(struct sk_buff *skb, struct genl_info *info)
> > > +{
> > > + struct phy_req_info req_info = {};
> > > + struct nlattr **tb = info->attrs;
> > > + struct sk_buff *rskb;
> > > + void *reply_payload;
> > > + int reply_len;
> > > + int ret;
> > > +
> > > + ret = ethnl_parse_header_dev_get(&req_info.base,
> > > + tb[ETHTOOL_A_PHY_HEADER],
> > > + genl_info_net(info), info->extack,
> > > + true);
> > > + if (ret < 0)
> > > + return ret;
> > > +
> > > + rtnl_lock();
> > > +
> > > + ret = ethnl_phy_parse_request(&req_info.base, tb, info->extack);
> > > + if (ret < 0)
> > > + goto err_unlock_rtnl;
> > > +
> > > + /* No PHY, return early */
> >
> > I got a syzbot report here.
>
> I seem to have missed the report, sorry about that.
>
> >
> > Should we fix this with :
> >
> > diff --git a/net/ethtool/phy.c b/net/ethtool/phy.c
> > index 560dd039c6625ac0925a0f28c14ce77cf768b6a5..4ef7c6e32d1087dc71acb467f9cd2ab8faf4dc39
> > 100644
> > --- a/net/ethtool/phy.c
> > +++ b/net/ethtool/phy.c
> > @@ -164,7 +164,7 @@ int ethnl_phy_doit(struct sk_buff *skb, struct
> > genl_info *info)
> > goto err_unlock_rtnl;
> >
> > /* No PHY, return early */
> > - if (!req_info.pdn->phy)
> > + if (!req_info.pdn)
> > goto err_unlock_rtnl;
> >
> > ret = ethnl_phy_reply_size(&req_info.base, info->extack);
> >
> >
>
> Indeed that's the correct fix. Should I send it ? ( including
> suggested-by/reported-by )

Yes please, go ahead.

>
> Thanks,
>
> Maxime