Commit 85ca8fc7 authored by Johannes Berg's avatar Johannes Berg

mac80211_hwsim: verify wmediumd socket

There can't be two wmediumd instances controlling hwsim,
so reject registration from a second one and verify in
the commands that it's the correct instance calling.
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent de0421d5
...@@ -2112,6 +2112,9 @@ static int hwsim_tx_info_frame_received_nl(struct sk_buff *skb_2, ...@@ -2112,6 +2112,9 @@ static int hwsim_tx_info_frame_received_nl(struct sk_buff *skb_2,
int i; int i;
bool found = false; bool found = false;
if (info->snd_portid != wmediumd_portid)
return -EINVAL;
if (!info->attrs[HWSIM_ATTR_ADDR_TRANSMITTER] || if (!info->attrs[HWSIM_ATTR_ADDR_TRANSMITTER] ||
!info->attrs[HWSIM_ATTR_FLAGS] || !info->attrs[HWSIM_ATTR_FLAGS] ||
!info->attrs[HWSIM_ATTR_COOKIE] || !info->attrs[HWSIM_ATTR_COOKIE] ||
...@@ -2185,6 +2188,9 @@ static int hwsim_cloned_frame_received_nl(struct sk_buff *skb_2, ...@@ -2185,6 +2188,9 @@ static int hwsim_cloned_frame_received_nl(struct sk_buff *skb_2,
void *frame_data; void *frame_data;
struct sk_buff *skb = NULL; struct sk_buff *skb = NULL;
if (info->snd_portid != wmediumd_portid)
return -EINVAL;
if (!info->attrs[HWSIM_ATTR_ADDR_RECEIVER] || if (!info->attrs[HWSIM_ATTR_ADDR_RECEIVER] ||
!info->attrs[HWSIM_ATTR_FRAME] || !info->attrs[HWSIM_ATTR_FRAME] ||
!info->attrs[HWSIM_ATTR_RX_RATE] || !info->attrs[HWSIM_ATTR_RX_RATE] ||
...@@ -2237,6 +2243,9 @@ static int hwsim_cloned_frame_received_nl(struct sk_buff *skb_2, ...@@ -2237,6 +2243,9 @@ static int hwsim_cloned_frame_received_nl(struct sk_buff *skb_2,
static int hwsim_register_received_nl(struct sk_buff *skb_2, static int hwsim_register_received_nl(struct sk_buff *skb_2,
struct genl_info *info) struct genl_info *info)
{ {
if (wmediumd_portid)
return -EBUSY;
wmediumd_portid = info->snd_portid; wmediumd_portid = info->snd_portid;
printk(KERN_DEBUG "mac80211_hwsim: received a REGISTER, " printk(KERN_DEBUG "mac80211_hwsim: received a REGISTER, "
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment