Date: Sun, 03 May 2015 22:29:31 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-wireless@FreeBSD.org Subject: [Bug 199676] [net80211] [patch]: fix possible kernel panic in IBSS mode (iv_bss may be freed twice) Message-ID: <bug-199676-21060-1vdU80FdwC@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-199676-21060@https.bugs.freebsd.org/bugzilla/> References: <bug-199676-21060@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=199676 --- Comment #1 from commit-hook@freebsd.org --- A commit references this bug: Author: adrian Date: Sun May 3 22:28:43 UTC 2015 New revision: 282372 URL: https://svnweb.freebsd.org/changeset/base/282372 Log: Remove old iv_bss entry from the node table This may happen on RUN -> SCAN -> RUN -> SCAN state transition: 1. RUN -> SCAN: in ieee80211_sta_join1(): iv_bss will be moved to obss, refcnt will be reduced by 2 (default minimum). Now, if old iv_bss have some extra references (for example, from unacknowledged probe responses), it will not be freed and will stay in the node table. 2. SCAN -> RUN. 3. If old iv_bss will not be deleted by the time when the next RUN -> SCAN state transition occurs, then sta_leave() will reduce it's reference counter once more. As a result, two last users will free it -> this will lead to kernel panic. In this patch old iv_bss entry is explicitly removed from the node table in ieee80211_sta_join1() (as a result, it will not be processed by sta_leave()). PR: kern/199676 Differential Revision: Andriy Voskoboinyk <s3erios@gmail.com> Changes: head/sys/net80211/ieee80211_node.c -- You are receiving this mail because: You are the assignee for the bug.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-199676-21060-1vdU80FdwC>