Skip site navigation (1)Skip section navigation (2)
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>