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
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1256903425.3555.47.camel@johannes.local>
Date:	Fri, 30 Oct 2009 12:50:25 +0100
From:	Johannes Berg <johannes@...solutions.net>
To:	Parag Warudkar <parag.lkml@...il.com>
Cc:	LKML <linux-kernel@...r.kernel.org>, linux-wireless@...r.kernel.org
Subject: Re: OOPS in cfg80211_conn_work

On Fri, 2009-10-30 at 06:57 -0400, Parag Warudkar wrote:
> 
> On Fri, 30 Oct 2009, Johannes Berg wrote:
> 
> > On Thu, 2009-10-29 at 19:17 -0400, Parag Warudkar wrote:
> > > Oct 29 18:59:06 parag-laptop kernel: [  143.180037] wlan0:
> > > deauthenticating from 00:16:01:d6:6f:12 by local choice (reason=3)
> > > Oct 29 18:59:06 parag-laptop kernel: [  143.181137] wlan0: direct
> > > probe to AP 00:16:01:d6:6f:12 (try 1)
> > 
> > sorry, I can't read this log. please provide a non-wrapped version
> > 
> How does this look? (Sorry sent it in a rush earlier.)
> Below also is a disassembly of cfg80211_conn_work.

Thanks. I was going to ask for disassembly but you preempted me, I like
that :)

Since you say you can easily reproduce this, can you try the patch
below?

johannes

---
 net/wireless/sme.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

--- wireless-testing.orig/net/wireless/sme.c	2009-10-30 12:48:09.000000000 +0100
+++ wireless-testing/net/wireless/sme.c	2009-10-30 12:48:41.000000000 +0100
@@ -165,7 +165,7 @@ void cfg80211_conn_work(struct work_stru
 	struct cfg80211_registered_device *rdev =
 		container_of(work, struct cfg80211_registered_device, conn_work);
 	struct wireless_dev *wdev;
-	u8 bssid[ETH_ALEN];
+	u8 bssid_buf[ETH_ALEN], *bssid = NULL;
 
 	rtnl_lock();
 	cfg80211_lock_rdev(rdev);
@@ -181,7 +181,10 @@ void cfg80211_conn_work(struct work_stru
 			wdev_unlock(wdev);
 			continue;
 		}
-		memcpy(bssid, wdev->conn->params.bssid, ETH_ALEN);
+		if (wdev->conn->params.bssid) {
+			memcpy(bssid_buf, wdev->conn->params.bssid, ETH_ALEN);
+			bssid = bssid_buf;
+		}
 		if (cfg80211_conn_do_work(wdev))
 			__cfg80211_connect_result(
 					wdev->netdev, bssid,


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ