Hi Johannes,
On 01/31/2018 03:53 PM, Johannes Berg wrote:
+static int nl80211_tx_control_port(struct sk_buff *skb, struct genl_info *info)
+{
+ struct cfg80211_registered_device *rdev = info->user_ptr[0];
+ struct net_device *dev = info->user_ptr[1];
+ struct wireless_dev *wdev = dev->ieee80211_ptr;
+ const u8 *buf;
+ size_t len;
+ u8 *dest;
+ u16 proto;
+ bool noencrypt;
+ int err;
+
+ if (!wiphy_ext_feature_isset(&rdev->wiphy,
+ NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211))
+ return -EOPNOTSUPP;
+
+ if (!rdev->ops->tx_control_port)
+ return -EOPNOTSUPP;
I wonder if maybe we should accept this command only from the socket
owner? Is there a use case for something else?
Yes I thought about adding such a check as I think it wouldn't make
sense to accept control port frames from any other application besides
the socket owner. However the socket owner stuff was a bit
controversial, so I left it out.
I would support adding this check...
Actually, then again, that's awkward because doing events and commands
on the same socket doesn't mix all _that_ well. Perhaps we just need to
fix that problem in libnl or something and be done with it ...
There are no issues on our side..
Regards,
-Denis