Message ID | 20241123170848.309264-1-lihaoyu499@gmail.com |
---|---|
State | New |
Headers | show |
Series | net: mac80211: cfg: Initialize cnt before accessing elem | expand |
On 23/11/24 11:08, Haoyu Li wrote: > With the new __counted_by annocation in cfg80211_rnr_elems, the "cnt" > struct member must be set before accessing the "elem" array. Failing to > do so will trigger a runtime warning when enabling CONFIG_UBSAN_BOUNDS > and CONFIG_FORTIFY_SOURCE. > Nice catch. :) > Fixes: 7b6d7087031b ("wifi: cfg80211: Annotate struct cfg80211_rnr_elems with __counted_by") This should be Cc'd to stable: Cc: stable@vger.kernel.org > Signed-off-by: Haoyu Li <lihaoyu499@gmail.com> Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org> Thanks -Gustavo > --- > net/mac80211/cfg.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c > index 61a824ec33da..6936b1303e81 100644 > --- a/net/mac80211/cfg.c > +++ b/net/mac80211/cfg.c > @@ -1105,13 +1105,13 @@ ieee80211_copy_rnr_beacon(u8 *pos, struct cfg80211_rnr_elems *dst, > { > int i, offset = 0; > > + dst->cnt = src->cnt; > for (i = 0; i < src->cnt; i++) { > memcpy(pos + offset, src->elem[i].data, src->elem[i].len); > dst->elem[i].len = src->elem[i].len; > dst->elem[i].data = pos + offset; > offset += dst->elem[i].len; > } > - dst->cnt = src->cnt; > > return offset; > }
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index 61a824ec33da..6936b1303e81 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c @@ -1105,13 +1105,13 @@ ieee80211_copy_rnr_beacon(u8 *pos, struct cfg80211_rnr_elems *dst, { int i, offset = 0; + dst->cnt = src->cnt; for (i = 0; i < src->cnt; i++) { memcpy(pos + offset, src->elem[i].data, src->elem[i].len); dst->elem[i].len = src->elem[i].len; dst->elem[i].data = pos + offset; offset += dst->elem[i].len; } - dst->cnt = src->cnt; return offset; }
With the new __counted_by annocation in cfg80211_rnr_elems, the "cnt" struct member must be set before accessing the "elem" array. Failing to do so will trigger a runtime warning when enabling CONFIG_UBSAN_BOUNDS and CONFIG_FORTIFY_SOURCE. Fixes: 7b6d7087031b ("wifi: cfg80211: Annotate struct cfg80211_rnr_elems with __counted_by") Signed-off-by: Haoyu Li <lihaoyu499@gmail.com> --- net/mac80211/cfg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)