[PATCH] wireless/nl80211.c: fix uninitialized variable

10 views
Skip to first unread message

Alaa Emad

unread,
Mar 29, 2021, 12:30:43 PM3/29/21
to joha...@sipsolutions.net, da...@davemloft.net, ku...@kernel.org, gre...@linuxfoundation.org, linux-w...@vger.kernel.org, net...@vger.kernel.org, linux-...@vger.kernel.org, syzk...@googlegroups.com, Alaa Emad, syzbot+72b99d...@syzkaller.appspotmail.com
Reported-by: syzbot+72b99d...@syzkaller.appspotmail.com
Signed-off-by: Alaa Emad <alaaemadh...@gmail.com>
---
net/wireless/nl80211.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 775d0c4d86c3..b87ab67ad33d 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -210,7 +210,7 @@ static int validate_beacon_head(const struct nlattr *attr,
const struct element *elem;
const struct ieee80211_mgmt *mgmt = (void *)data;
bool s1g_bcn = ieee80211_is_s1g_beacon(mgmt->frame_control);
- unsigned int fixedlen, hdrlen;
+ unsigned int fixedlen = 0, hdrlen;

if (s1g_bcn) {
fixedlen = offsetof(struct ieee80211_ext,
--
2.25.1

Greg KH

unread,
Mar 29, 2021, 2:20:30 PM3/29/21
to Alaa Emad, joha...@sipsolutions.net, da...@davemloft.net, ku...@kernel.org, linux-w...@vger.kernel.org, net...@vger.kernel.org, linux-...@vger.kernel.org, syzk...@googlegroups.com, syzbot+72b99d...@syzkaller.appspotmail.com
On Mon, Mar 29, 2021 at 06:30:36PM +0200, Alaa Emad wrote:
> Reported-by: syzbot+72b99d...@syzkaller.appspotmail.com
> Signed-off-by: Alaa Emad <alaaemadh...@gmail.com>

You need to provide some changelog text here, I know I can not take
patches without that, maybe the wireless maintainer is more flexible :)

thanks,

greg k-h

Alaa Emad

unread,
Mar 29, 2021, 2:41:52 PM3/29/21
to Greg KH, joha...@sipsolutions.net, da...@davemloft.net, ku...@kernel.org, linux-w...@vger.kernel.org, net...@vger.kernel.org, LKML, syzkaller, syzbot+72b99d...@syzkaller.appspotmail.com
  you mean explain what i did , right?

thanks,

greg k-h

Greg KH

unread,
Mar 29, 2021, 2:58:06 PM3/29/21
to Alaa Emad, joha...@sipsolutions.net, da...@davemloft.net, ku...@kernel.org, linux-w...@vger.kernel.org, net...@vger.kernel.org, LKML, syzkaller, syzbot+72b99d...@syzkaller.appspotmail.com
Yes, explain why this change is needed.

thanks,

greg k-h

Alaa Emad

unread,
Mar 30, 2021, 8:42:45 AM3/30/21
to Greg KH, joha...@sipsolutions.net, da...@davemloft.net, ku...@kernel.org, linux-w...@vger.kernel.org, net...@vger.kernel.org, LKML, syzkaller, syzbot+72b99d...@syzkaller.appspotmail.com
 
  This change fix  KMSAN uninit-value in net/wireless/nl80211.c:225 , That because of `fixedlen` variable uninitialized.
   So I initialized it by zero because the code assigned value to it after that and doesn't depend on any stored value in it .

thanks,

greg k-h


Thanks ,
Alaa

Pavel Skripkin

unread,
Mar 30, 2021, 8:48:29 AM3/30/21
to Alaa Emad, Greg KH, joha...@sipsolutions.net, da...@davemloft.net, ku...@kernel.org, linux-w...@vger.kernel.org, net...@vger.kernel.org, LKML, syzkaller, syzbot+72b99d...@syzkaller.appspotmail.com
Hi!
You should add this message to the patch, not just write it to
maintainer.

I think, this link might be
useful https://www.kernel.org/doc/html/v4.17/process/submitting-patches.html

> >
> > thanks,
> >
> > greg k-h
> >
>
>
>
> Thanks ,
> Alaa
> --
> You received this message because you are subscribed to the Google
> Groups "syzkaller" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to syzkaller+...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/syzkaller/CAM1DhOjWgN_0GVBeX%2Bpf%2B9mk_ysaN9pF4agAFUNEkzhxpFR4%3Dw%40mail.gmail.com
> .

With regards,
Pavel Skripkin


Alaa Emad

unread,
Mar 30, 2021, 9:16:35 AM3/30/21
to Pavel Skripkin, Greg KH, LKML, da...@davemloft.net, joha...@sipsolutions.net, ku...@kernel.org, linux-w...@vger.kernel.org, net...@vger.kernel.org, syzbot+72b99d...@syzkaller.appspotmail.com, syzkaller
I see , Thank you

Alaa Emad

unread,
Mar 30, 2021, 12:37:10 PM3/30/21
to joha...@sipsolutions.net, da...@davemloft.net, ku...@kernel.org, gre...@linuxfoundation.org, linux-w...@vger.kernel.org, net...@vger.kernel.org, linux-...@vger.kernel.org, syzk...@googlegroups.com, Alaa Emad, syzbot+72b99d...@syzkaller.appspotmail.com
This change fix KMSAN uninit-value in net/wireless/nl80211.c:225 , That
because of `fixedlen` variable uninitialized,So I initialized it by zero.

Reported-by: syzbot+72b99d...@syzkaller.appspotmail.com
Signed-off-by: Alaa Emad <alaaemadh...@gmail.com>
---
Changes in v2:
- Make the commit message more clearer.
---
net/wireless/nl80211.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 775d0c4d86c3..b87ab67ad33d 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -210,7 +210,7 @@ static int validate_beacon_head(const struct nlattr *attr,
const struct element *elem;
const struct ieee80211_mgmt *mgmt = (void *)data;
bool s1g_bcn = ieee80211_is_s1g_beacon(mgmt->frame_control);
- unsigned int fixedlen, hdrlen;
+ unsigned int fixedlen = 0 , hdrlen;

Greg KH

unread,
Mar 30, 2021, 1:15:01 PM3/30/21
to Alaa Emad, joha...@sipsolutions.net, da...@davemloft.net, ku...@kernel.org, linux-w...@vger.kernel.org, net...@vger.kernel.org, linux-...@vger.kernel.org, syzk...@googlegroups.com, syzbot+72b99d...@syzkaller.appspotmail.com
Please always use scripts/checkpatch.pl before sending out patches. It
would have pointed out that this line is incorrect and needs to be fixed
up :(

thanks,

greg k-h

Alaa Emad

unread,
Mar 30, 2021, 1:21:13 PM3/30/21
to Greg KH, joha...@sipsolutions.net, da...@davemloft.net, ku...@kernel.org, linux-w...@vger.kernel.org, net...@vger.kernel.org, LKML, syzkaller, syzbot+72b99d...@syzkaller.appspotmail.com
  Okay , will do that
thanks,

greg k-h

Alaa Emad

unread,
Mar 30, 2021, 1:22:59 PM3/30/21
to joha...@sipsolutions.net, da...@davemloft.net, ku...@kernel.org, gre...@linuxfoundation.org, linux-w...@vger.kernel.org, net...@vger.kernel.org, linux-...@vger.kernel.org, syzk...@googlegroups.com, Alaa Emad, syzbot+72b99d...@syzkaller.appspotmail.com
This change fix KMSAN uninit-value in net/wireless/nl80211.c:225 , That
because of `fixedlen` variable uninitialized,So I initialized it by zero.

Reported-by: syzbot+72b99d...@syzkaller.appspotmail.com
Signed-off-by: Alaa Emad <alaaemadh...@gmail.com>
---
Changes in v2:
- Make the commit message more clearer.
---
net/wireless/nl80211.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 775d0c4d86c3..b87ab67ad33d 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -210,7 +210,7 @@ static int validate_beacon_head(const struct nlattr *attr,
const struct element *elem;
const struct ieee80211_mgmt *mgmt = (void *)data;
bool s1g_bcn = ieee80211_is_s1g_beacon(mgmt->frame_control);
- unsigned int fixedlen, hdrlen;
+ unsigned int fixedlen = 0, hdrlen;

Alaa Emad

unread,
Mar 30, 2021, 1:26:18 PM3/30/21
to Greg KH, joha...@sipsolutions.net, da...@davemloft.net, ku...@kernel.org, linux-w...@vger.kernel.org, net...@vger.kernel.org, LKML, syzkaller, syzbot+72b99d...@syzkaller.appspotmail.com
On Tue, 30 Mar 2021 at 19:15, Greg KH <gre...@linuxfoundation.org> wrote:
Should the patch be version three?

thanks,

greg k-h

Eric Dumazet

unread,
Mar 30, 2021, 3:26:37 PM3/30/21
to Alaa Emad, joha...@sipsolutions.net, da...@davemloft.net, ku...@kernel.org, gre...@linuxfoundation.org, linux-w...@vger.kernel.org, net...@vger.kernel.org, linux-...@vger.kernel.org, syzk...@googlegroups.com, syzbot+72b99d...@syzkaller.appspotmail.com
What was the report exactly ?

Current code does :

unsigned int fixedlen;

if (s1g_bcn) {
fixedlen = something1;
...
else {
fixedlen = something2;
...
}

So your patch does nothing.

Initial value of @fixedlen is not relevant.

Reading this code (without access to KMSAN report) I suspect the issue
is more like the following :

diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 775d0c4d86c3..d815261917ff 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -209,9 +209,12 @@ static int validate_beacon_head(const struct nlattr *attr,
unsigned int len = nla_len(attr);
const struct element *elem;
const struct ieee80211_mgmt *mgmt = (void *)data;
- bool s1g_bcn = ieee80211_is_s1g_beacon(mgmt->frame_control);
unsigned int fixedlen, hdrlen;
+ bool s1g_bcn;

+ if (len < offsetofend(typeof(*mgmt), frame_control))
+ goto err;
+ s1g_bcn = ieee80211_is_s1g_beacon(mgmt->frame_control);
if (s1g_bcn) {
fixedlen = offsetof(struct ieee80211_ext,
u.s1g_beacon.variable);

Alaa Emad

unread,
Mar 31, 2021, 9:02:59 AM3/31/21
to Eric Dumazet, joha...@sipsolutions.net, da...@davemloft.net, ku...@kernel.org, Greg KH, linux-w...@vger.kernel.org, net...@vger.kernel.org, LKML, syzkaller, syzbot+72b99d...@syzkaller.appspotmail.com

Alaa Emad

unread,
Mar 31, 2021, 9:16:04 AM3/31/21
to Eric Dumazet, joha...@sipsolutions.net, da...@davemloft.net, ku...@kernel.org, Greg KH, linux-w...@vger.kernel.org, net...@vger.kernel.org, LKML, syzkaller, syzbot+72b99d...@syzkaller.appspotmail.com
On Tue, 30 Mar 2021 at 21:26, Eric Dumazet <eric.d...@gmail.com> wrote:
you mean this patch have already landed? as i don't find it : https://github.com/google/kmsan/blob/master/net/wireless/nl80211.c#L213
Reply all
Reply to author
Forward
0 new messages