On Fri, 5 Jul 2024 18:41:16 -0700 Jakub Kicinski <kuba@xxxxxxxxxx> wrote: > On Thu, 04 Jul 2024 10:12:00 +0200 Kory Maincent wrote: > > + if (tb[ETHTOOL_A_PODL_PSE_ADMIN_CONTROL] || > > + tb[ETHTOOL_A_C33_PSE_ADMIN_CONTROL]) { > > + struct pse_control_config config = {}; > > + > > + if (pse_has_podl(phydev->psec)) > > + config.podl_admin_control = > > nla_get_u32(tb[ETHTOOL_A_PODL_PSE_ADMIN_CONTROL]); > > + if (pse_has_c33(phydev->psec)) > > + config.c33_admin_control = > > nla_get_u32(tb[ETHTOOL_A_C33_PSE_ADMIN_CONTROL]); > > This smells of null-deref if user only passes one of the attributes. > But the fix should probably be in ethnl_set_pse_validate() so it won't > conflict (I'm speculating that it will need to go to net). Mmh, indeed if the netlink PSE type attribute is different with the supported PSE type we might have an issue here. I am wondering, if I fix it in net won't it conflict with net-next now that this series is merged? Regards, -- Köry Maincent, Bootlin Embedded Linux and kernel engineering https://bootlin.com