tree: https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git netlink-validation head: 7285466f06c44e4080895c1b21a4323be9aaddb6 commit: 6c16e6c01eb1a3777f9caa976a9b993c28146cc7 [7/9] netlink: add infrastructure to expose policies to userspace If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot <lkp@xxxxxxxxx> cppcheck warnings: (new ones prefixed by >>) >> net/netlink/genetlink.c:1055:7: warning: Local variable 'err' shadows outer variable [shadowVariable] int err = genlmsg_parse(cb->nlh, &genl_ctrl, tb, ^ net/netlink/genetlink.c:1050:6: note: Shadowed declaration int err; ^ net/netlink/genetlink.c:1055:7: note: Shadow variable int err = genlmsg_parse(cb->nlh, &genl_ctrl, tb, ^ net/netlink/genetlink.c:480:68: warning: Clarify calculation precedence for '&' and '?'. [clarifyCalculation] enum netlink_validation validate = ops->validate & no_strict_flag ? ^ -- >> net/netlink/policy.c:106:28: warning: Local variable 'policy' shadows outer argument [shadowArgument] const struct nla_policy *policy; ^ net/netlink/policy.c:76:56: note: Shadowed declaration int netlink_policy_dump_start(const struct nla_policy *policy, ^ net/netlink/policy.c:106:28: note: Shadow variable const struct nla_policy *policy; ^ vim +/err +1055 net/netlink/genetlink.c 1045 1046 static int ctrl_dumppolicy(struct sk_buff *skb, struct netlink_callback *cb) 1047 { 1048 const struct genl_family *rt; 1049 unsigned int fam_id = cb->args[0]; 1050 int err; 1051 1052 if (!fam_id) { 1053 struct nlattr *tb[CTRL_ATTR_MAX + 1]; 1054 > 1055 int err = genlmsg_parse(cb->nlh, &genl_ctrl, tb, 1056 genl_ctrl.maxattr, 1057 genl_ctrl.policy, cb->extack); 1058 if (err) 1059 return err; 1060 1061 if (!tb[CTRL_ATTR_FAMILY_ID] && !tb[CTRL_ATTR_FAMILY_NAME]) 1062 return -EINVAL; 1063 if (tb[CTRL_ATTR_FAMILY_ID]) { 1064 fam_id = nla_get_u16(tb[CTRL_ATTR_FAMILY_ID]); 1065 } else { 1066 rt = genl_family_find_byname( 1067 nla_data(tb[CTRL_ATTR_FAMILY_NAME])); 1068 if (!rt) 1069 return -ENOENT; 1070 fam_id = rt->id; 1071 } 1072 } 1073 1074 rt = genl_family_find_byid(fam_id); 1075 if (!rt) 1076 return -ENOENT; 1077 1078 if (!rt->policy) 1079 return -ENODATA; 1080 1081 err = netlink_policy_dump_start(rt->policy, rt->maxattr, &cb->args[1]); 1082 if (err) 1083 return err; 1084 1085 while (netlink_policy_dump_loop(&cb->args[1])) { 1086 void *hdr; 1087 struct nlattr *nest; 1088 1089 hdr = genlmsg_put(skb, NETLINK_CB(cb->skb).portid, 1090 cb->nlh->nlmsg_seq, &genl_ctrl, 1091 NLM_F_MULTI, CTRL_CMD_GETPOLICY); 1092 if (!hdr) 1093 goto nla_put_failure; 1094 1095 if (nla_put_u16(skb, CTRL_ATTR_FAMILY_ID, rt->id)) 1096 goto nla_put_failure; 1097 1098 nest = nla_nest_start(skb, CTRL_ATTR_POLICY); 1099 if (!nest) 1100 goto nla_put_failure; 1101 1102 if (netlink_policy_dump_write(skb, cb->args[1])) 1103 goto nla_put_failure; 1104 1105 nla_nest_end(skb, nest); 1106 1107 genlmsg_end(skb, hdr); 1108 continue; 1109 1110 nla_put_failure: 1111 genlmsg_cancel(skb, hdr); 1112 break; 1113 } 1114 1115 cb->args[0] = fam_id; 1116 return skb->len; 1117 } 1118 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx