lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 27 Mar 2017 12:47:59 +0200 From: Johannes Berg <johannes@...solutions.net> To: Matthias Kaehlcke <mka@...omium.org>, "David S . Miller" <davem@...emloft.net>, Felix Fietkau <nbd@...nwrt.org> Cc: netdev@...r.kernel.org, linux-kernel@...r.kernel.org, Grant Grundler <grundler@...omium.org> Subject: Re: [PATCH] cfg80211: Fix array-bounds warning in fragment copy On Fri, 2017-03-24 at 18:06 -0700, Matthias Kaehlcke wrote: > __ieee80211_amsdu_copy_frag intentionally initializes a pointer to > array[-1] to increment it later to valid values. clang rightfully > generates an array-bounds warning on the initialization statement. > Work around this by initializing the pointer to array[0] and > decrementing it later, which allows to leave the rest of the > algorithm untouched. > > Signed-off-by: Matthias Kaehlcke <mka@...omium.org> > --- > net/wireless/util.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/net/wireless/util.c b/net/wireless/util.c > index 68e5f2ecee1a..d3d459e4a070 100644 > --- a/net/wireless/util.c > +++ b/net/wireless/util.c > @@ -659,7 +659,7 @@ __ieee80211_amsdu_copy_frag(struct sk_buff *skb, > struct sk_buff *frame, > int offset, int len) > { > struct skb_shared_info *sh = skb_shinfo(skb); > - const skb_frag_t *frag = &sh->frags[-1]; > + const skb_frag_t *frag = &sh->frags[0]; > struct page *frag_page; > void *frag_ptr; > int frag_len, frag_size; > @@ -669,6 +669,7 @@ __ieee80211_amsdu_copy_frag(struct sk_buff *skb, > struct sk_buff *frame, > frag_page = virt_to_head_page(skb->head); > frag_ptr = skb->data; > frag_size = head_size; > + frag--; Isn't it just a question of time until the compiler will see through this trick and warn about it? johannes
Powered by blists - more mailing lists