|
@@ -549,6 +549,14 @@ nl80211_nan_srf_policy[NL80211_NAN_SRF_ATTR_MAX + 1] = {
|
|
|
[NL80211_NAN_SRF_MAC_ADDRS] = { .type = NLA_NESTED },
|
|
|
};
|
|
|
|
|
|
+/* policy for packet pattern attributes */
|
|
|
+static const struct nla_policy
|
|
|
+nl80211_packet_pattern_policy[MAX_NL80211_PKTPAT + 1] = {
|
|
|
+ [NL80211_PKTPAT_MASK] = { .type = NLA_BINARY, },
|
|
|
+ [NL80211_PKTPAT_PATTERN] = { .type = NLA_BINARY, },
|
|
|
+ [NL80211_PKTPAT_OFFSET] = { .type = NLA_U32 },
|
|
|
+};
|
|
|
+
|
|
|
static int nl80211_prepare_wdev_dump(struct sk_buff *skb,
|
|
|
struct netlink_callback *cb,
|
|
|
struct cfg80211_registered_device **rdev,
|
|
@@ -10532,7 +10540,8 @@ static int nl80211_set_wowlan(struct sk_buff *skb, struct genl_info *info)
|
|
|
u8 *mask_pat;
|
|
|
|
|
|
nla_parse_nested(pat_tb, MAX_NL80211_PKTPAT, pat,
|
|
|
- NULL, info->extack);
|
|
|
+ nl80211_packet_pattern_policy,
|
|
|
+ info->extack);
|
|
|
err = -EINVAL;
|
|
|
if (!pat_tb[NL80211_PKTPAT_MASK] ||
|
|
|
!pat_tb[NL80211_PKTPAT_PATTERN])
|
|
@@ -10781,7 +10790,8 @@ static int nl80211_parse_coalesce_rule(struct cfg80211_registered_device *rdev,
|
|
|
rem) {
|
|
|
u8 *mask_pat;
|
|
|
|
|
|
- nla_parse_nested(pat_tb, MAX_NL80211_PKTPAT, pat, NULL, NULL);
|
|
|
+ nla_parse_nested(pat_tb, MAX_NL80211_PKTPAT, pat,
|
|
|
+ nl80211_packet_pattern_policy, NULL);
|
|
|
if (!pat_tb[NL80211_PKTPAT_MASK] ||
|
|
|
!pat_tb[NL80211_PKTPAT_PATTERN])
|
|
|
return -EINVAL;
|