• Johannes Berg's avatar
    mac80211: handle RIC data element in reassociation request · 8ed28747
    Johannes Berg authored
    When the RIC data element (RDE) is included in the IEs coming
    from userspace for an association request, its handling is
    currently broken as any IEs that are contained within it would
    be split off from it and inserted again after all the IEs that
    mac80211 generates (e.g. HT, VHT.)
    
    To fix this, treat the RIC element specially, and stop after
    it only when we find something that doesn't actually belong to
    it. This assumes userspace is actually correctly building it,
    directly after the fast BSS transition IE and before all the
    others like extended capabilities.
    
    This leaves as a potential problem the case where userspace is
    building the following IEs:
    
    [RDE] [vendor resource description] [vendor non-resource IE]
    
    In this case, we'd erroneously consider all three IEs to be
    part of the RIC data together, and not split them between the
    two vendor IEs. Unfortunately, it isn't easily possible to
    distinguish vendor IEs, so this isn't easy to fix. Luckily,
    this case is rare as normally wpa_supplicant will include an
    extended capabilities IE in the IEs, and that certainly will
    break the two vendor IEs apart correctly.
    Reviewed-by: default avatarEliad Peller <eliad@wizery.com>
    Reviewed-by: default avatarBeni Lev <beni.lev@intel.com>
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    8ed28747
util.c 81.2 KB