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  Kind regards, Sven  https://git.open-mesh.org/batman-adv.git/commit/d7280ffad5e9025bc6c26f9ad4925fd0797fb8db
Description: This is a digitally signed message part.