nl80211: Fix DFS radar event parsing
authorMichal Kazior <michal.kazior@tieto.com>
Tue, 22 Oct 2013 12:50:07 +0000 (15:50 +0300)
committerJouni Malinen <j@w1.fi>
Tue, 22 Oct 2013 12:50:07 +0000 (15:50 +0300)
Incorrect nla_get variants were used to get event type and frequency.
Kernel passes both as u32. This caused issues on tinynl/big-endian hosts
- CAC finished was treated as radar detection and frequency was 0.

Signed-hostap: Michal Kazior <michal.kazior@tieto.com>

src/drivers/driver_nl80211.c

index 9539c0f..30a8bb1 100644 (file)
@@ -2510,8 +2510,8 @@ static void nl80211_radar_event(struct wpa_driver_nl80211_data *drv,
                return;
 
        os_memset(&data, 0, sizeof(data));
-       data.dfs_event.freq = nla_get_u16(tb[NL80211_ATTR_WIPHY_FREQ]);
-       event_type = nla_get_u8(tb[NL80211_ATTR_RADAR_EVENT]);
+       data.dfs_event.freq = nla_get_u32(tb[NL80211_ATTR_WIPHY_FREQ]);
+       event_type = nla_get_u32(tb[NL80211_ATTR_RADAR_EVENT]);
 
        /* Check HT params */
        if (tb[NL80211_ATTR_WIPHY_CHANNEL_TYPE]) {