diff options
Diffstat (limited to 'net/wireless')
-rw-r--r-- | net/wireless/reg.c | 7 | ||||
-rw-r--r-- | net/wireless/wext.c | 7 |
2 files changed, 14 insertions, 0 deletions
diff --git a/net/wireless/reg.c b/net/wireless/reg.c index df0ced9405d..f87ac1df2df 100644 --- a/net/wireless/reg.c +++ b/net/wireless/reg.c @@ -1680,6 +1680,13 @@ static int regulatory_hint_core(const char *alpha2) queue_regulatory_request(request); + /* + * This ensures last_request is populated once modules + * come swinging in and calling regulatory hints and + * wiphy_apply_custom_regulatory(). + */ + flush_scheduled_work(); + return 0; } diff --git a/net/wireless/wext.c b/net/wireless/wext.c index 22378daceb9..252c2010c2e 100644 --- a/net/wireless/wext.c +++ b/net/wireless/wext.c @@ -820,6 +820,13 @@ static int ioctl_standard_iw_point(struct iw_point *iwp, unsigned int cmd, err = -EFAULT; goto out; } + + if (cmd == SIOCSIWENCODEEXT) { + struct iw_encode_ext *ee = (void *) extra; + + if (iwp->length < sizeof(*ee) + ee->key_len) + return -EFAULT; + } } err = handler(dev, info, (union iwreq_data *) iwp, extra); |