diff options
author | Srinivas Dasari <dasaris@qti.qualcomm.com> | 2017-07-07 01:43:40 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-07-21 07:42:20 +0200 |
commit | 6a90f81ab6398499e54927f5232b0a90d447b6de (patch) | |
tree | 281ea026b757449a6d6d0af47e36b7ea5a49de26 /net | |
parent | 7e9e9638afdfa122ba0dc314c9219dd90ed116b8 (diff) | |
download | linux-stable-6a90f81ab6398499e54927f5232b0a90d447b6de.tar.gz linux-stable-6a90f81ab6398499e54927f5232b0a90d447b6de.tar.bz2 linux-stable-6a90f81ab6398499e54927f5232b0a90d447b6de.zip |
cfg80211: Check if NAN service ID is of expected size
commit 0a27844ce86d039d74221dd56cd8c0349b146b63 upstream.
nla policy checks for only maximum length of the attribute data when the
attribute type is NLA_BINARY. If userspace sends less data than
specified, cfg80211 may access illegal memory. When type is NLA_UNSPEC,
nla policy check ensures that userspace sends minimum specified length
number of bytes.
Remove type assignment to NLA_BINARY from nla_policy of
NL80211_NAN_FUNC_SERVICE_ID to make these NLA_UNSPEC and to make sure
minimum NL80211_NAN_FUNC_SERVICE_ID_LEN bytes are received from
userspace with NL80211_NAN_FUNC_SERVICE_ID.
Fixes: a442b761b24 ("cfg80211: add add_nan_func / del_nan_func")
Signed-off-by: Srinivas Dasari <dasaris@qti.qualcomm.com>
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net')
-rw-r--r-- | net/wireless/nl80211.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 6de42310c71e..e9e9bc5c8773 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -512,7 +512,7 @@ nl80211_bss_select_policy[NL80211_BSS_SELECT_ATTR_MAX + 1] = { static const struct nla_policy nl80211_nan_func_policy[NL80211_NAN_FUNC_ATTR_MAX + 1] = { [NL80211_NAN_FUNC_TYPE] = { .type = NLA_U8 }, - [NL80211_NAN_FUNC_SERVICE_ID] = { .type = NLA_BINARY, + [NL80211_NAN_FUNC_SERVICE_ID] = { .len = NL80211_NAN_FUNC_SERVICE_ID_LEN }, [NL80211_NAN_FUNC_PUBLISH_TYPE] = { .type = NLA_U8 }, [NL80211_NAN_FUNC_PUBLISH_BCAST] = { .type = NLA_FLAG }, |