<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/net/wireless/scan.c, branch linux-2.6.31.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>cfg80211: fix looping soft lockup in find_ie()</title>
<updated>2009-09-24T15:43:51+00:00</updated>
<author>
<name>Bob Copeland</name>
<email>me@bobcopeland.com</email>
</author>
<published>2009-09-01T22:12:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=945797ee7348fb106dbd8708c1f6a7fd5b6edd3f'/>
<id>945797ee7348fb106dbd8708c1f6a7fd5b6edd3f</id>
<content type='text'>
commit fcc6cb0c13555e78c2d47257b6d1b5e59b0c419a upstream.

The find_ie() function uses a size_t for the len parameter, and
directly uses len as a loop variable.  If any received packets
are malformed, it is possible for the decrease of len to overflow,
and since the result is unsigned, the loop will not terminate.
Change it to a signed int so the loop conditional works for
negative values.

This fixes the following soft lockup:

[38573.102007] BUG: soft lockup - CPU#0 stuck for 61s! [phy0:2230]
[38573.102007] Modules linked in: aes_i586 aes_generic fuse af_packet ipt_REJECT xt_tcpudp nf_conntrack_ipv4 nf_defrag_ipv4 xt_state iptable_filter ip_tables x_tables acpi_cpufreq binfmt_misc dm_mirror dm_region_hash dm_log dm_multipath dm_mod kvm_intel kvm uinput i915 arc4 ecb drm snd_hda_codec_idt ath5k snd_hda_intel hid_apple mac80211 usbhid appletouch snd_hda_codec snd_pcm ath cfg80211 snd_timer i2c_algo_bit ohci1394 video snd processor ieee1394 rfkill ehci_hcd sg sky2 backlight snd_page_alloc uhci_hcd joydev output ac thermal button battery sr_mod applesmc cdrom input_polldev evdev unix [last unloaded: scsi_wait_scan]
[38573.102007] irq event stamp: 2547724535
[38573.102007] hardirqs last  enabled at (2547724534): [&lt;c1002ffc&gt;] restore_all_notrace+0x0/0x18
[38573.102007] hardirqs last disabled at (2547724535): [&lt;c10038f4&gt;] apic_timer_interrupt+0x28/0x34
[38573.102007] softirqs last  enabled at (92950144): [&lt;c103ab48&gt;] __do_softirq+0x108/0x210
[38573.102007] softirqs last disabled at (92950274): [&lt;c1348e74&gt;] _spin_lock_bh+0x14/0x80
[38573.102007]
[38573.102007] Pid: 2230, comm: phy0 Tainted: G        W  (2.6.31-rc7-wl #8) MacBook1,1
[38573.102007] EIP: 0060:[&lt;f8ea2d50&gt;] EFLAGS: 00010292 CPU: 0
[38573.102007] EIP is at cmp_ies+0x30/0x180 [cfg80211]
[38573.102007] EAX: 00000082 EBX: 00000000 ECX: ffffffc1 EDX: d8efd014
[38573.102007] ESI: ffffff7c EDI: 0000004d EBP: eee2dc50 ESP: eee2dc3c
[38573.102007]  DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
[38573.102007] CR0: 8005003b CR2: d8efd014 CR3: 01694000 CR4: 000026d0
[38573.102007] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
[38573.102007] DR6: ffff0ff0 DR7: 00000400
[38573.102007] Call Trace:
[38573.102007]  [&lt;f8ea2f8d&gt;] cmp_bss+0xed/0x100 [cfg80211]
[38573.102007]  [&lt;f8ea33e4&gt;] cfg80211_bss_update+0x84/0x410 [cfg80211]
[38573.102007]  [&lt;f8ea3884&gt;] cfg80211_inform_bss_frame+0x114/0x180 [cfg80211]
[38573.102007]  [&lt;f97255ff&gt;] ieee80211_bss_info_update+0x4f/0x180 [mac80211]
[38573.102007]  [&lt;f972b118&gt;] ieee80211_rx_bss_info+0x88/0xf0 [mac80211]
[38573.102007]  [&lt;f9739297&gt;] ? ieee802_11_parse_elems+0x27/0x30 [mac80211]
[38573.102007]  [&lt;f972b224&gt;] ieee80211_rx_mgmt_probe_resp+0xa4/0x1c0 [mac80211]
[38573.102007]  [&lt;f972bc59&gt;] ieee80211_sta_rx_queued_mgmt+0x919/0xc50 [mac80211]
[38573.102007]  [&lt;c1009707&gt;] ? sched_clock+0x27/0xa0
[38573.102007]  [&lt;c1009707&gt;] ? sched_clock+0x27/0xa0
[38573.102007]  [&lt;c105ffd0&gt;] ? mark_held_locks+0x60/0x80
[38573.102007]  [&lt;c1348be5&gt;] ? _spin_unlock_irqrestore+0x55/0x70
[38573.102007]  [&lt;c134baa5&gt;] ? sub_preempt_count+0x85/0xc0
[38573.102007]  [&lt;c1348bce&gt;] ? _spin_unlock_irqrestore+0x3e/0x70
[38573.102007]  [&lt;c12c1c0f&gt;] ? skb_dequeue+0x4f/0x70
[38573.102007]  [&lt;f972c021&gt;] ieee80211_sta_work+0x91/0xb80 [mac80211]
[38573.102007]  [&lt;c1009707&gt;] ? sched_clock+0x27/0xa0
[38573.102007]  [&lt;c134baa5&gt;] ? sub_preempt_count+0x85/0xc0
[38573.102007]  [&lt;c10479af&gt;] worker_thread+0x18f/0x320
[38573.102007]  [&lt;c104794e&gt;] ? worker_thread+0x12e/0x320
[38573.102007]  [&lt;c1348be5&gt;] ? _spin_unlock_irqrestore+0x55/0x70
[38573.102007]  [&lt;f972bf90&gt;] ? ieee80211_sta_work+0x0/0xb80 [mac80211]
[38573.102007]  [&lt;c104cbb0&gt;] ? autoremove_wake_function+0x0/0x50
[38573.102007]  [&lt;c1047820&gt;] ? worker_thread+0x0/0x320
[38573.102007]  [&lt;c104c854&gt;] kthread+0x84/0x90
[38573.102007]  [&lt;c104c7d0&gt;] ? kthread+0x0/0x90
[38573.102007]  [&lt;c1003ab7&gt;] kernel_thread_helper+0x7/0x10

Signed-off-by: Bob Copeland &lt;me@bobcopeland.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit fcc6cb0c13555e78c2d47257b6d1b5e59b0c419a upstream.

The find_ie() function uses a size_t for the len parameter, and
directly uses len as a loop variable.  If any received packets
are malformed, it is possible for the decrease of len to overflow,
and since the result is unsigned, the loop will not terminate.
Change it to a signed int so the loop conditional works for
negative values.

This fixes the following soft lockup:

[38573.102007] BUG: soft lockup - CPU#0 stuck for 61s! [phy0:2230]
[38573.102007] Modules linked in: aes_i586 aes_generic fuse af_packet ipt_REJECT xt_tcpudp nf_conntrack_ipv4 nf_defrag_ipv4 xt_state iptable_filter ip_tables x_tables acpi_cpufreq binfmt_misc dm_mirror dm_region_hash dm_log dm_multipath dm_mod kvm_intel kvm uinput i915 arc4 ecb drm snd_hda_codec_idt ath5k snd_hda_intel hid_apple mac80211 usbhid appletouch snd_hda_codec snd_pcm ath cfg80211 snd_timer i2c_algo_bit ohci1394 video snd processor ieee1394 rfkill ehci_hcd sg sky2 backlight snd_page_alloc uhci_hcd joydev output ac thermal button battery sr_mod applesmc cdrom input_polldev evdev unix [last unloaded: scsi_wait_scan]
[38573.102007] irq event stamp: 2547724535
[38573.102007] hardirqs last  enabled at (2547724534): [&lt;c1002ffc&gt;] restore_all_notrace+0x0/0x18
[38573.102007] hardirqs last disabled at (2547724535): [&lt;c10038f4&gt;] apic_timer_interrupt+0x28/0x34
[38573.102007] softirqs last  enabled at (92950144): [&lt;c103ab48&gt;] __do_softirq+0x108/0x210
[38573.102007] softirqs last disabled at (92950274): [&lt;c1348e74&gt;] _spin_lock_bh+0x14/0x80
[38573.102007]
[38573.102007] Pid: 2230, comm: phy0 Tainted: G        W  (2.6.31-rc7-wl #8) MacBook1,1
[38573.102007] EIP: 0060:[&lt;f8ea2d50&gt;] EFLAGS: 00010292 CPU: 0
[38573.102007] EIP is at cmp_ies+0x30/0x180 [cfg80211]
[38573.102007] EAX: 00000082 EBX: 00000000 ECX: ffffffc1 EDX: d8efd014
[38573.102007] ESI: ffffff7c EDI: 0000004d EBP: eee2dc50 ESP: eee2dc3c
[38573.102007]  DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
[38573.102007] CR0: 8005003b CR2: d8efd014 CR3: 01694000 CR4: 000026d0
[38573.102007] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
[38573.102007] DR6: ffff0ff0 DR7: 00000400
[38573.102007] Call Trace:
[38573.102007]  [&lt;f8ea2f8d&gt;] cmp_bss+0xed/0x100 [cfg80211]
[38573.102007]  [&lt;f8ea33e4&gt;] cfg80211_bss_update+0x84/0x410 [cfg80211]
[38573.102007]  [&lt;f8ea3884&gt;] cfg80211_inform_bss_frame+0x114/0x180 [cfg80211]
[38573.102007]  [&lt;f97255ff&gt;] ieee80211_bss_info_update+0x4f/0x180 [mac80211]
[38573.102007]  [&lt;f972b118&gt;] ieee80211_rx_bss_info+0x88/0xf0 [mac80211]
[38573.102007]  [&lt;f9739297&gt;] ? ieee802_11_parse_elems+0x27/0x30 [mac80211]
[38573.102007]  [&lt;f972b224&gt;] ieee80211_rx_mgmt_probe_resp+0xa4/0x1c0 [mac80211]
[38573.102007]  [&lt;f972bc59&gt;] ieee80211_sta_rx_queued_mgmt+0x919/0xc50 [mac80211]
[38573.102007]  [&lt;c1009707&gt;] ? sched_clock+0x27/0xa0
[38573.102007]  [&lt;c1009707&gt;] ? sched_clock+0x27/0xa0
[38573.102007]  [&lt;c105ffd0&gt;] ? mark_held_locks+0x60/0x80
[38573.102007]  [&lt;c1348be5&gt;] ? _spin_unlock_irqrestore+0x55/0x70
[38573.102007]  [&lt;c134baa5&gt;] ? sub_preempt_count+0x85/0xc0
[38573.102007]  [&lt;c1348bce&gt;] ? _spin_unlock_irqrestore+0x3e/0x70
[38573.102007]  [&lt;c12c1c0f&gt;] ? skb_dequeue+0x4f/0x70
[38573.102007]  [&lt;f972c021&gt;] ieee80211_sta_work+0x91/0xb80 [mac80211]
[38573.102007]  [&lt;c1009707&gt;] ? sched_clock+0x27/0xa0
[38573.102007]  [&lt;c134baa5&gt;] ? sub_preempt_count+0x85/0xc0
[38573.102007]  [&lt;c10479af&gt;] worker_thread+0x18f/0x320
[38573.102007]  [&lt;c104794e&gt;] ? worker_thread+0x12e/0x320
[38573.102007]  [&lt;c1348be5&gt;] ? _spin_unlock_irqrestore+0x55/0x70
[38573.102007]  [&lt;f972bf90&gt;] ? ieee80211_sta_work+0x0/0xb80 [mac80211]
[38573.102007]  [&lt;c104cbb0&gt;] ? autoremove_wake_function+0x0/0x50
[38573.102007]  [&lt;c1047820&gt;] ? worker_thread+0x0/0x320
[38573.102007]  [&lt;c104c854&gt;] kthread+0x84/0x90
[38573.102007]  [&lt;c104c7d0&gt;] ? kthread+0x0/0x90
[38573.102007]  [&lt;c1003ab7&gt;] kernel_thread_helper+0x7/0x10

Signed-off-by: Bob Copeland &lt;me@bobcopeland.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>cfg80211: add two missing NULL pointer checks</title>
<updated>2009-08-03T20:31:21+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes@sipsolutions.net</email>
</author>
<published>2009-07-29T20:07:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=cd3468bad96c00b5a512f551674f36776129520e'/>
<id>cd3468bad96c00b5a512f551674f36776129520e</id>
<content type='text'>
These pointers can be NULL, the is_mesh() case isn't
ever hit in the current kernel, but cmp_ies() can be
hit under certain conditions.

Signed-off-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Cc: stable@kernel.org [2.6.29, 2.6.30]
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These pointers can be NULL, the is_mesh() case isn't
ever hit in the current kernel, but cmp_ies() can be
hit under certain conditions.

Signed-off-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Cc: stable@kernel.org [2.6.29, 2.6.30]
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cfg80211: double free in __cfg80211_scan_done</title>
<updated>2009-07-21T16:07:44+00:00</updated>
<author>
<name>Christian Lamparter</name>
<email>chunkeey@web.de</email>
</author>
<published>2009-07-19T03:05:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=9e81eccf199d910e5ea8db377a43478e4eccd033'/>
<id>9e81eccf199d910e5ea8db377a43478e4eccd033</id>
<content type='text'>
This patch fixes a double free corruption in __cfg80211_scan_done:

 ================================================
 BUG kmalloc-512: Object already free
 ------------------------------------------------

 INFO: Allocated in load_elf_binary+0x18b/0x19af age=6
 INFO: Freed in load_elf_binary+0x104e/0x19af age=5
 INFO: Slab 0xffffea0001bae4c0 objects=14 used=7
 INFO: Object 0xffff88007e8a9918 @offset=6424 fp=0xffff88007e8a9488

 Bytes b4 0xffff88007e8a9908:  00 00 00 00 00 00 00 00 5a 5a
 [...]
 Pid: 28705, comm: rmmod Tainted: P         C 2.6.31-rc2-wl #1
 Call Trace:
  [&lt;ffffffff810da9f4&gt;] print_trailer+0x14e/0x16e
  [&lt;ffffffff810daa56&gt;] object_err+0x42/0x61
  [&lt;ffffffff810dbcd9&gt;] __slab_free+0x2af/0x396
  [&lt;ffffffffa0ec9694&gt;] ? wiphy_unregister+0x92/0x142 [cfg80211]
  [&lt;ffffffff810dd5e3&gt;] kfree+0x13c/0x17a
  [&lt;ffffffffa0ec9694&gt;] ? wiphy_unregister+0x92/0x142 [cfg80211]
  [&lt;ffffffffa0ec9694&gt;] wiphy_unregister+0x92/0x142 [cfg80211]
  [&lt;ffffffffa0eed163&gt;] ieee80211_unregister_hw+0xc8/0xff [mac80211]
  [&lt;ffffffffa0f3fbc8&gt;] p54_unregister_common+0x31/0x66 [p54common]
  [...]
 FIX kmalloc-512: Object at 0xffff88007e8a9918 not freed

The code path which leads to the *funny* double free:

       request = rdev-&gt;scan_req;
       dev = dev_get_by_index(&amp;init_net, request-&gt;ifidx);
	/*
	 * the driver was unloaded recently and
	 * therefore dev_get_by_index will return NULL!
	 */
        if (!dev)
                goto out;
	[...]
	rdev-&gt;scan_req = NULL; /* not executed... */
	[...]
 out:
        kfree(request);

Signed-off-by: Christian Lamparter &lt;chunkeey@web.de&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes a double free corruption in __cfg80211_scan_done:

 ================================================
 BUG kmalloc-512: Object already free
 ------------------------------------------------

 INFO: Allocated in load_elf_binary+0x18b/0x19af age=6
 INFO: Freed in load_elf_binary+0x104e/0x19af age=5
 INFO: Slab 0xffffea0001bae4c0 objects=14 used=7
 INFO: Object 0xffff88007e8a9918 @offset=6424 fp=0xffff88007e8a9488

 Bytes b4 0xffff88007e8a9908:  00 00 00 00 00 00 00 00 5a 5a
 [...]
 Pid: 28705, comm: rmmod Tainted: P         C 2.6.31-rc2-wl #1
 Call Trace:
  [&lt;ffffffff810da9f4&gt;] print_trailer+0x14e/0x16e
  [&lt;ffffffff810daa56&gt;] object_err+0x42/0x61
  [&lt;ffffffff810dbcd9&gt;] __slab_free+0x2af/0x396
  [&lt;ffffffffa0ec9694&gt;] ? wiphy_unregister+0x92/0x142 [cfg80211]
  [&lt;ffffffff810dd5e3&gt;] kfree+0x13c/0x17a
  [&lt;ffffffffa0ec9694&gt;] ? wiphy_unregister+0x92/0x142 [cfg80211]
  [&lt;ffffffffa0ec9694&gt;] wiphy_unregister+0x92/0x142 [cfg80211]
  [&lt;ffffffffa0eed163&gt;] ieee80211_unregister_hw+0xc8/0xff [mac80211]
  [&lt;ffffffffa0f3fbc8&gt;] p54_unregister_common+0x31/0x66 [p54common]
  [...]
 FIX kmalloc-512: Object at 0xffff88007e8a9918 not freed

The code path which leads to the *funny* double free:

       request = rdev-&gt;scan_req;
       dev = dev_get_by_index(&amp;init_net, request-&gt;ifidx);
	/*
	 * the driver was unloaded recently and
	 * therefore dev_get_by_index will return NULL!
	 */
        if (!dev)
                goto out;
	[...]
	rdev-&gt;scan_req = NULL; /* not executed... */
	[...]
 out:
        kfree(request);

Signed-off-by: Christian Lamparter &lt;chunkeey@web.de&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cfg80211: fix refcount leak</title>
<updated>2009-07-07T16:55:28+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes@sipsolutions.net</email>
</author>
<published>2009-07-02T13:46:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=2dce4c2b5f0b43bd25bf9ea6ded06b7f8a54c91f'/>
<id>2dce4c2b5f0b43bd25bf9ea6ded06b7f8a54c91f</id>
<content type='text'>
The code in cfg80211's cfg80211_bss_update erroneously
grabs a reference to the BSS, which means that it will
never be freed.

Signed-off-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Cc: stable@kernel.org [2.6.29, 2.6.30]
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The code in cfg80211's cfg80211_bss_update erroneously
grabs a reference to the BSS, which means that it will
never be freed.

Signed-off-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Cc: stable@kernel.org [2.6.29, 2.6.30]
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nl80211: bounce scan request back to userspace</title>
<updated>2009-06-03T18:05:10+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes@sipsolutions.net</email>
</author>
<published>2009-05-24T14:43:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=362a415dce2130b0e4cebfc8f8fbd8128baff308'/>
<id>362a415dce2130b0e4cebfc8f8fbd8128baff308</id>
<content type='text'>
When a scan finishes only the program that asked for it
knows what kind of scan it was; let's tell everybody else
about the scan parameters as well so they can evaluate
the result of the scan better. Also helps with debugging.

Signed-off-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When a scan finishes only the program that asked for it
knows what kind of scan it was; let's tell everybody else
about the scan parameters as well so they can evaluate
the result of the scan better. Also helps with debugging.

Signed-off-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6</title>
<updated>2009-05-08T19:46:17+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2009-05-08T19:46:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=a8679be2073392cf22a910bc25da0c7d36459845'/>
<id>a8679be2073392cf22a910bc25da0c7d36459845</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6</title>
<updated>2009-05-08T09:48:30+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2009-05-08T09:48:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=22f6dacdfcfdc792d068e9c41234808860498d04'/>
<id>22f6dacdfcfdc792d068e9c41234808860498d04</id>
<content type='text'>
Conflicts:
	include/net/tcp.h
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	include/net/tcp.h
</pre>
</div>
</content>
</entry>
<entry>
<title>cfg80211: Use the correct IE buffer pointer</title>
<updated>2009-05-06T19:14:44+00:00</updated>
<author>
<name>Michael Buesch</name>
<email>mb@bu3sch.de</email>
</author>
<published>2009-04-26T09:27:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=44e1b98f733e48bb781e4229120e1de5e0c9fdbb'/>
<id>44e1b98f733e48bb781e4229120e1de5e0c9fdbb</id>
<content type='text'>
If the IE buffer was allocated, the pub.information_elements pointer
was also changed to the allocated space. So we must not assume anymore
that the pointer points at the "found" tail.

So if it was allocated previously, take the codebranch that grows the
buffer size (if necessary) and put the data into the allocated buffer.

Signed-off-by: Michael Buesch &lt;mb@bu3sch.de&gt;
Acked-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the IE buffer was allocated, the pub.information_elements pointer
was also changed to the allocated space. So we must not assume anymore
that the pointer points at the "found" tail.

So if it was allocated previously, take the codebranch that grows the
buffer size (if necessary) and put the data into the allocated buffer.

Signed-off-by: Michael Buesch &lt;mb@bu3sch.de&gt;
Acked-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cfg80211: Remove unnecessary ksize() call</title>
<updated>2009-05-06T19:14:42+00:00</updated>
<author>
<name>Michael Buesch</name>
<email>mb@bu3sch.de</email>
</author>
<published>2009-04-25T20:28:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=273de92c8461776aaac7b32f8d5889a72b38ea10'/>
<id>273de92c8461776aaac7b32f8d5889a72b38ea10</id>
<content type='text'>
This removes an unnecessary ksize() call. krealloc() will do this
test internally and won't perform any allocation if the space is
already sufficient to hold the data.
So remove the redundant check.

Signed-off-by: Michael Buesch &lt;mb@bu3sch.de&gt;
Reviewed-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This removes an unnecessary ksize() call. krealloc() will do this
test internally and won't perform any allocation if the space is
already sufficient to hold the data.
So remove the redundant check.

Signed-off-by: Michael Buesch &lt;mb@bu3sch.de&gt;
Reviewed-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cfg80211: fix truncated IEs</title>
<updated>2009-05-04T20:22:10+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes@sipsolutions.net</email>
</author>
<published>2009-04-30T18:09:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c0f0aac05fa84b37ed46db8cf6c8bee9a67bbcca'/>
<id>c0f0aac05fa84b37ed46db8cf6c8bee9a67bbcca</id>
<content type='text'>
Another bug in the "cfg80211: do not replace BSS structs" patch,
a forgotten length update leads to bogus data being stored and
passed to userspace, often truncated.

Signed-off-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Another bug in the "cfg80211: do not replace BSS structs" patch,
a forgotten length update leads to bogus data being stored and
passed to userspace, often truncated.

Signed-off-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
