Hi Vinicius,
url:
https://github.com/0day-ci/linux/commits/Vinicius-Costa-Gomes/ethtool-Add...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git dev-queue
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
smatch warnings:
net/ethtool/preempt.c:152 ethnl_set_preempt() warn: variable dereferenced before check
'info' (see line 127)
#
https://github.com/0day-ci/linux/commit/5d130ebd7a21741d4fda1c8829a32353e...
git remote add linux-review
https://github.com/0day-ci/linux
git remote update linux-review
git checkout 5d130ebd7a21741d4fda1c8829a32353e10d49d5
vim +/info +152 net/ethtool/preempt.c
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 118 int ethnl_set_preempt(struct sk_buff
*skb, struct genl_info *info)
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 119 {
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 120 struct nlattr
*tb[ETHTOOL_A_LINKINFO_MAX + 1];
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 121 struct ethtool_fp preempt = {};
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 122 struct ethnl_req_info req_info =
{};
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 123 struct net_device *dev;
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 124 bool mod = false;
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 125 int ret;
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 126
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 @127 ret = nlmsg_parse(info->nlhdr,
GENL_HDRLEN, tb,
^^^^^^^^^^^
Unchecked dereference.
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 128 ETHTOOL_A_PREEMPT_MAX,
preempt_set_policy,
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 129 info->extack);
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 130 if (ret < 0)
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 131 return ret;
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 132
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 133 ret =
ethnl_parse_header_dev_get(&req_info,
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 134 tb[ETHTOOL_A_PREEMPT_HEADER],
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 135 genl_info_net(info),
info->extack,
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 136 true);
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 137 if (ret < 0)
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 138 return ret;
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 139 dev = req_info.dev;
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 140 ret = -EOPNOTSUPP;
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 141 if
(!dev->ethtool_ops->get_preempt ||
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 142
!dev->ethtool_ops->set_preempt)
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 143 goto out_dev;
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 144
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 145 rtnl_lock();
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 146 ret = ethnl_ops_begin(dev);
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 147 if (ret < 0)
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 148 goto out_rtnl;
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 149
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 150 ret =
dev->ethtool_ops->get_preempt(dev, &preempt);
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 151 if (ret < 0) {
5d130ebd7a2174 Vinicius Costa Gomes 2020-05-15 @152 if (info)
^^^^^^^^^
Check is too late to help.
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org