On Mittwoch, 6. Juni 2018 17:35:29 CEST Sven Eckelmann wrote:
> Most of the implementations behind cfg80211_get_station will not initialize
> sinfo to zero before manipulating it. For example, the member "filled",
> which indicates the filled in parts of this struct, is often only modified
> by enabling certain bits in the bitfield while keeping the remaining bits
> in their original state. A caller without a preinitialized sinfo.filled can
> then no longer decide which parts of sinfo were filled in by
> cfg80211_get_station (or actually the underlying implementations).
> 
> cfg80211_get_station must therefore take care that sinfo is initialized to
> zero. Otherwise, the caller may tries to read information which was not
> filled in and which must therefore also be considered uninitialized. In
> batadv_v_elp_get_throughput's case, an invalid "random" expected throughput
> may be stored for this neighbor and thus the B.A.T.M.A.N V algorithm may
> switch to non-optimal neighbors for certain destinations.
> 
> batman-adv's compat layer must take care of intializing sinfo until it is
> fixed in the upstream kernel.
> 
> Fixes: 7406353d43c8 ("cfg80211: implement cfg80211_get_station cfg80211 API")
> Reported-by: Thomas Lauer <holminat...@gmail.com>
> Reported-by: Marcel Schmidt <ff.z-casparistra...@mailbox.org>
> Signed-off-by: Sven Eckelmann <s...@narfation.org>
> ---
>  compat-include/net/cfg80211.h | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)


Added as d7280ffad5e9 [1]

Kind regards,
        Sven

[1] 
https://git.open-mesh.org/batman-adv.git/commit/d7280ffad5e9025bc6c26f9ad4925fd0797fb8db

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to