nl80211: Fix reading of the extended capabilities mask

We were copying the NL80211_ATTR_EXT_CAPA attribute into the
extended_capa_mask element, which is incorrect. Use
NL80211_ATTR_EXT_CAPA_MASK instead.

Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
This commit is contained in:
Luciano Coelho 2015-01-18 20:44:11 -05:00 committed by Jouni Malinen
parent 7e608d1def
commit 7b7b4449a9

View file

@ -520,11 +520,11 @@ static int wiphy_info_handler(struct nl_msg *msg, void *arg)
nla_len(tb[NL80211_ATTR_EXT_CAPA]); nla_len(tb[NL80211_ATTR_EXT_CAPA]);
} }
drv->extended_capa_mask = drv->extended_capa_mask =
os_malloc(nla_len(tb[NL80211_ATTR_EXT_CAPA])); os_malloc(nla_len(tb[NL80211_ATTR_EXT_CAPA_MASK]));
if (drv->extended_capa_mask) { if (drv->extended_capa_mask) {
os_memcpy(drv->extended_capa_mask, os_memcpy(drv->extended_capa_mask,
nla_data(tb[NL80211_ATTR_EXT_CAPA]), nla_data(tb[NL80211_ATTR_EXT_CAPA_MASK]),
nla_len(tb[NL80211_ATTR_EXT_CAPA])); nla_len(tb[NL80211_ATTR_EXT_CAPA_MASK]));
} else { } else {
os_free(drv->extended_capa); os_free(drv->extended_capa);
drv->extended_capa = NULL; drv->extended_capa = NULL;