linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] cfg80211: fix memory leak/corruption of bss_list
@ 2012-05-17 16:06 Eliad Peller
  2012-05-17 19:29 ` Ben Greear
  2012-05-17 19:47 ` Johannes Berg
  0 siblings, 2 replies; 6+ messages in thread
From: Eliad Peller @ 2012-05-17 16:06 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless

cfg80211_dev_free() calls cfg80211_put_bss() directly on all
the remaining bss entries, skipping the proper bss entry
cleanup that usually made by __cfg80211_unlink_bss(), and
leaving the bss_list and the rb_tree with dangling pointers.

Fix it by calling cfg80211_unlink_bss() instead.

Cc: stable@vger.kernel.org
Signed-off-by: Eliad Peller <eliad@wizery.com>
---
 net/wireless/core.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/wireless/core.c b/net/wireless/core.c
index 4e86a86..232c385 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -729,7 +729,7 @@ void cfg80211_dev_free(struct cfg80211_registered_device *rdev)
 	mutex_destroy(&rdev->devlist_mtx);
 	mutex_destroy(&rdev->sched_scan_mtx);
 	list_for_each_entry_safe(scan, tmp, &rdev->bss_list, list)
-		cfg80211_put_bss(&scan->pub);
+		cfg80211_unlink_bss(&rdev->wiphy, &scan->pub);
 	kfree(rdev);
 }
 
-- 
1.7.6.401.g6a319


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-05-17 21:44 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-17 16:06 [PATCH] cfg80211: fix memory leak/corruption of bss_list Eliad Peller
2012-05-17 19:29 ` Ben Greear
2012-05-17 21:39   ` Eliad Peller
2012-05-17 19:47 ` Johannes Berg
2012-05-17 21:34   ` Eliad Peller
2012-05-17 21:43     ` Ben Greear

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).