1
linux/net/wireless
Julius Volz b46372710a net/wireless/nl80211.c: fix endless Netlink callback loop.
Although I only tested similar code (I don't use any of this wireless
code), the state maintainance between Netlink dump callback invocations
seems wrong here and should lead to an endless loop. There are also other
examples in the same file which might have the same problem. Perhaps someone
can actually test this (or refute my logic).

Take the simple example with only one element in the list (which should fit
into the message):

1. invocation:
  Start:
    idx = 0, start = 0
  Loop:
    condition (++idx < start) => (1 < 0) => false
    => no continue, fill one entry, exit loop, return skb->len > 0

2. invocation:
  Start:
    idx = 0, start = 1
  Loop:
    condition (++idx < start) => (1 < 1) => false
    => no continue, fill the same entry again, exit loop, return skb->len > 0

3. invocation:
  Same as 2. invocation, endless invocation of callback.

Also, iterations where the filling of an element fails should not be counted as
completed, so idx should not be incremented in this case.

Signed-off-by: Julius Volz <juliusv@google.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-07-08 14:16:08 -04:00
..
core.c wireless: Add missing locking to cfg80211_dev_rename 2008-05-14 16:29:49 -04:00
core.h cfg80211 API for channels/bitrates, mac80211 and driver conversion 2008-02-29 15:19:32 -05:00
Kconfig net/wireless/Kconfig: whitespace corrections 2008-01-28 14:59:55 -08:00
Makefile cfg80211 API for channels/bitrates, mac80211 and driver conversion 2008-02-29 15:19:32 -05:00
nl80211.c net/wireless/nl80211.c: fix endless Netlink callback loop. 2008-07-08 14:16:08 -04:00
nl80211.h [NL80211]: add netlink interface to cfg80211 2007-10-10 16:52:14 -07:00
radiotap.c wireless: use get/put_unaligned_* helpers 2008-05-14 16:29:32 -04:00
reg.c mac80211: implement EU regulatory domain 2008-06-14 12:18:03 -04:00
sysfs.c Driver core: change add_uevent_var to use a struct 2007-10-12 14:51:01 -07:00
sysfs.h
util.c cfg80211: don't export ieee80211_get_channel 2008-03-27 16:03:20 -04:00
wext.c wext: Create IW_REQUEST_FLAG_COMPAT and set it as needed. 2008-06-16 18:34:49 -07:00