<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/net/core/rtnetlink.c, branch v3.16.41</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>rtnetlink: fix rtnl_vfinfo_size</title>
<updated>2017-02-23T03:54:34+00:00</updated>
<author>
<name>Sabrina Dubroca</name>
<email>sd@queasysnail.net</email>
</author>
<published>2016-11-15T09:39:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=6a9c63564c4f3ce1a01b72b5e2316208c01c48c4'/>
<id>6a9c63564c4f3ce1a01b72b5e2316208c01c48c4</id>
<content type='text'>
commit 7e75f74a171a8146cc3ee92d5562878b40c25fb5 upstream.

The size reported by rtnl_vfinfo_size doesn't match the space used by
rtnl_fill_vfinfo.

rtnl_vfinfo_size currently doesn't account for the nest attributes
used by statistics (added in commit 3b766cd83232), nor for struct
ifla_vf_tx_rate (since commit ed616689a3d9, which added ifla_vf_rate
to the dump without removing ifla_vf_tx_rate, but replaced
ifla_vf_tx_rate with ifla_vf_rate in the size computation).

Fixes: 3b766cd83232 ("net/core: Add reading VF statistics through the PF netdevice")
Fixes: ed616689a3d9 ("net-next:v4: Add support to configure SR-IOV VF minimum and maximum Tx rate through ip tool")
Signed-off-by: Sabrina Dubroca &lt;sd@queasysnail.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
[bwh: Backported to 3.16: only need to add space for IFLA_VF_TX_RATE]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 7e75f74a171a8146cc3ee92d5562878b40c25fb5 upstream.

The size reported by rtnl_vfinfo_size doesn't match the space used by
rtnl_fill_vfinfo.

rtnl_vfinfo_size currently doesn't account for the nest attributes
used by statistics (added in commit 3b766cd83232), nor for struct
ifla_vf_tx_rate (since commit ed616689a3d9, which added ifla_vf_rate
to the dump without removing ifla_vf_tx_rate, but replaced
ifla_vf_tx_rate with ifla_vf_rate in the size computation).

Fixes: 3b766cd83232 ("net/core: Add reading VF statistics through the PF netdevice")
Fixes: ed616689a3d9 ("net-next:v4: Add support to configure SR-IOV VF minimum and maximum Tx rate through ip tool")
Signed-off-by: Sabrina Dubroca &lt;sd@queasysnail.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
[bwh: Backported to 3.16: only need to add space for IFLA_VF_TX_RATE]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rtnl: reset calcit fptr in rtnl_unregister()</title>
<updated>2017-02-23T03:54:31+00:00</updated>
<author>
<name>Mathias Krause</name>
<email>minipli@googlemail.com</email>
</author>
<published>2016-11-07T22:22:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f60c9f651a505df9d132e2ac61af229506eac2d5'/>
<id>f60c9f651a505df9d132e2ac61af229506eac2d5</id>
<content type='text'>
commit f567e950bf51290755a2539ff2aaef4c26f735d3 upstream.

To avoid having dangling function pointers left behind, reset calcit in
rtnl_unregister(), too.

This is no issue so far, as only the rtnl core registers a netlink
handler with a calcit hook which won't be unregistered, but may become
one if new code makes use of the calcit hook.

Fixes: c7ac8679bec9 ("rtnetlink: Compute and store minimum ifinfo...")
Cc: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Cc: Greg Rose &lt;gregory.v.rose@intel.com&gt;
Signed-off-by: Mathias Krause &lt;minipli@googlemail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit f567e950bf51290755a2539ff2aaef4c26f735d3 upstream.

To avoid having dangling function pointers left behind, reset calcit in
rtnl_unregister(), too.

This is no issue so far, as only the rtnl core registers a netlink
handler with a calcit hook which won't be unregistered, but may become
one if new code makes use of the calcit hook.

Fixes: c7ac8679bec9 ("rtnetlink: Compute and store minimum ifinfo...")
Cc: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Cc: Greg Rose &lt;gregory.v.rose@intel.com&gt;
Signed-off-by: Mathias Krause &lt;minipli@googlemail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: fix infoleak in rtnetlink</title>
<updated>2016-06-15T20:29:34+00:00</updated>
<author>
<name>Kangjie Lu</name>
<email>kangjielu@gmail.com</email>
</author>
<published>2016-05-03T20:46:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=935f8a3274efedc93d5e6c8183915ac4fad81924'/>
<id>935f8a3274efedc93d5e6c8183915ac4fad81924</id>
<content type='text'>
commit 5f8e44741f9f216e33736ea4ec65ca9ac03036e6 upstream.

The stack object “map” has a total size of 32 bytes. Its last 4
bytes are padding generated by compiler. These padding bytes are
not initialized and sent out via “nla_put”.

Signed-off-by: Kangjie Lu &lt;kjlu@gatech.edu&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
[bwh: Backported to 3.2: adjust context, indentation]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 5f8e44741f9f216e33736ea4ec65ca9ac03036e6 upstream.

The stack object “map” has a total size of 32 bytes. Its last 4
bytes are padding generated by compiler. These padding bytes are
not initialized and sent out via “nla_put”.

Signed-off-by: Kangjie Lu &lt;kjlu@gatech.edu&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
[bwh: Backported to 3.2: adjust context, indentation]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rtnetlink: verify IFLA_VF_INFO attributes before passing them to driver</title>
<updated>2015-08-27T12:30:18+00:00</updated>
<author>
<name>Daniel Borkmann</name>
<email>daniel@iogearbox.net</email>
</author>
<published>2015-07-06T22:07:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=39347e759a3b492df125e384a86f87bd61584c4e'/>
<id>39347e759a3b492df125e384a86f87bd61584c4e</id>
<content type='text'>
commit 4f7d2cdfdde71ffe962399b7020c674050329423 upstream.

Jason Gunthorpe reported that since commit c02db8c6290b ("rtnetlink: make
SR-IOV VF interface symmetric"), we don't verify IFLA_VF_INFO attributes
anymore with respect to their policy, that is, ifla_vfinfo_policy[].

Before, they were part of ifla_policy[], but they have been nested since
placed under IFLA_VFINFO_LIST, that contains the attribute IFLA_VF_INFO,
which is another nested attribute for the actual VF attributes such as
IFLA_VF_MAC, IFLA_VF_VLAN, etc.

Despite the policy being split out from ifla_policy[] in this commit,
it's never applied anywhere. nla_for_each_nested() only does basic nla_ok()
testing for struct nlattr, but it doesn't know about the data context and
their requirements.

Fix, on top of Jason's initial work, does 1) parsing of the attributes
with the right policy, and 2) using the resulting parsed attribute table
from 1) instead of the nla_for_each_nested() loop (just like we used to
do when still part of ifla_policy[]).

Reference: http://thread.gmane.org/gmane.linux.network/368913
Fixes: c02db8c6290b ("rtnetlink: make SR-IOV VF interface symmetric")
Reported-by: Jason Gunthorpe &lt;jgunthorpe@obsidianresearch.com&gt;
Cc: Chris Wright &lt;chrisw@sous-sol.org&gt;
Cc: Sucheta Chakraborty &lt;sucheta.chakraborty@qlogic.com&gt;
Cc: Greg Rose &lt;gregory.v.rose@intel.com&gt;
Cc: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Cc: Rony Efraim &lt;ronye@mellanox.com&gt;
Cc: Vlad Zolotarov &lt;vladz@cloudius-systems.com&gt;
Cc: Nicolas Dichtel &lt;nicolas.dichtel@6wind.com&gt;
Cc: Thomas Graf &lt;tgraf@suug.ch&gt;
Signed-off-by: Jason Gunthorpe &lt;jgunthorpe@obsidianresearch.com&gt;
Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;
Acked-by: Vlad Zolotarov &lt;vladz@cloudius-systems.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
[ luis: backported to 3.16: used davem's backport to 3.18 ]
Signed-off-by: Luis Henriques &lt;luis.henriques@canonical.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 4f7d2cdfdde71ffe962399b7020c674050329423 upstream.

Jason Gunthorpe reported that since commit c02db8c6290b ("rtnetlink: make
SR-IOV VF interface symmetric"), we don't verify IFLA_VF_INFO attributes
anymore with respect to their policy, that is, ifla_vfinfo_policy[].

Before, they were part of ifla_policy[], but they have been nested since
placed under IFLA_VFINFO_LIST, that contains the attribute IFLA_VF_INFO,
which is another nested attribute for the actual VF attributes such as
IFLA_VF_MAC, IFLA_VF_VLAN, etc.

Despite the policy being split out from ifla_policy[] in this commit,
it's never applied anywhere. nla_for_each_nested() only does basic nla_ok()
testing for struct nlattr, but it doesn't know about the data context and
their requirements.

Fix, on top of Jason's initial work, does 1) parsing of the attributes
with the right policy, and 2) using the resulting parsed attribute table
from 1) instead of the nla_for_each_nested() loop (just like we used to
do when still part of ifla_policy[]).

Reference: http://thread.gmane.org/gmane.linux.network/368913
Fixes: c02db8c6290b ("rtnetlink: make SR-IOV VF interface symmetric")
Reported-by: Jason Gunthorpe &lt;jgunthorpe@obsidianresearch.com&gt;
Cc: Chris Wright &lt;chrisw@sous-sol.org&gt;
Cc: Sucheta Chakraborty &lt;sucheta.chakraborty@qlogic.com&gt;
Cc: Greg Rose &lt;gregory.v.rose@intel.com&gt;
Cc: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Cc: Rony Efraim &lt;ronye@mellanox.com&gt;
Cc: Vlad Zolotarov &lt;vladz@cloudius-systems.com&gt;
Cc: Nicolas Dichtel &lt;nicolas.dichtel@6wind.com&gt;
Cc: Thomas Graf &lt;tgraf@suug.ch&gt;
Signed-off-by: Jason Gunthorpe &lt;jgunthorpe@obsidianresearch.com&gt;
Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;
Acked-by: Vlad Zolotarov &lt;vladz@cloudius-systems.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
[ luis: backported to 3.16: used davem's backport to 3.18 ]
Signed-off-by: Luis Henriques &lt;luis.henriques@canonical.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: use for_each_netdev_safe() in rtnl_group_changelink()</title>
<updated>2015-04-13T16:57:46+00:00</updated>
<author>
<name>WANG Cong</name>
<email>xiyou.wangcong@gmail.com</email>
</author>
<published>2015-03-23T23:31:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c3bd57cd08b19ae8704a5ecdef76dc2a2623d7a4'/>
<id>c3bd57cd08b19ae8704a5ecdef76dc2a2623d7a4</id>
<content type='text'>
commit d079535d5e1bf5e2e7c856bae2483414ea21e137 upstream.

In case we move the whole dev group to another netns,
we should call for_each_netdev_safe(), otherwise we get
a soft lockup:

 NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [ip:798]
 irq event stamp: 255424
 hardirqs last  enabled at (255423): [&lt;ffffffff81a2aa95&gt;] restore_args+0x0/0x30
 hardirqs last disabled at (255424): [&lt;ffffffff81a2ad5a&gt;] apic_timer_interrupt+0x6a/0x80
 softirqs last  enabled at (255422): [&lt;ffffffff81079ebc&gt;] __do_softirq+0x2c1/0x3a9
 softirqs last disabled at (255417): [&lt;ffffffff8107a190&gt;] irq_exit+0x41/0x95
 CPU: 0 PID: 798 Comm: ip Not tainted 4.0.0-rc4+ #881
 Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
 task: ffff8800d1b88000 ti: ffff880119530000 task.ti: ffff880119530000
 RIP: 0010:[&lt;ffffffff810cad11&gt;]  [&lt;ffffffff810cad11&gt;] debug_lockdep_rcu_enabled+0x28/0x30
 RSP: 0018:ffff880119533778  EFLAGS: 00000246
 RAX: ffff8800d1b88000 RBX: 0000000000000002 RCX: 0000000000000038
 RDX: 0000000000000000 RSI: ffff8800d1b888c8 RDI: ffff8800d1b888c8
 RBP: ffff880119533778 R08: 0000000000000000 R09: 0000000000000000
 R10: 0000000000000000 R11: 000000000000b5c2 R12: 0000000000000246
 R13: ffff880119533708 R14: 00000000001d5a40 R15: ffff88011a7d5a40
 FS:  00007fc01315f740(0000) GS:ffff88011a600000(0000) knlGS:0000000000000000
 CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
 CR2: 00007f367a120988 CR3: 000000011849c000 CR4: 00000000000007f0
 Stack:
  ffff880119533798 ffffffff811ac868 ffffffff811ac831 ffffffff811ac828
  ffff8801195337c8 ffffffff811ac8c9 ffff8801195339b0 ffff8801197633e0
  0000000000000000 ffff8801195339b0 ffff8801195337d8 ffffffff811ad2d7
 Call Trace:
  [&lt;ffffffff811ac868&gt;] rcu_read_lock+0x37/0x6e
  [&lt;ffffffff811ac831&gt;] ? rcu_read_unlock+0x5f/0x5f
  [&lt;ffffffff811ac828&gt;] ? rcu_read_unlock+0x56/0x5f
  [&lt;ffffffff811ac8c9&gt;] __fget+0x2a/0x7a
  [&lt;ffffffff811ad2d7&gt;] fget+0x13/0x15
  [&lt;ffffffff811be732&gt;] proc_ns_fget+0xe/0x38
  [&lt;ffffffff817c7714&gt;] get_net_ns_by_fd+0x11/0x59
  [&lt;ffffffff817df359&gt;] rtnl_link_get_net+0x33/0x3e
  [&lt;ffffffff817df3d7&gt;] do_setlink+0x73/0x87b
  [&lt;ffffffff810b28ce&gt;] ? trace_hardirqs_off+0xd/0xf
  [&lt;ffffffff81a2aa95&gt;] ? retint_restore_args+0xe/0xe
  [&lt;ffffffff817e0301&gt;] rtnl_newlink+0x40c/0x699
  [&lt;ffffffff817dffe0&gt;] ? rtnl_newlink+0xeb/0x699
  [&lt;ffffffff81a29246&gt;] ? _raw_spin_unlock+0x28/0x33
  [&lt;ffffffff8143ed1e&gt;] ? security_capable+0x18/0x1a
  [&lt;ffffffff8107da51&gt;] ? ns_capable+0x4d/0x65
  [&lt;ffffffff817de5ce&gt;] rtnetlink_rcv_msg+0x181/0x194
  [&lt;ffffffff817de407&gt;] ? rtnl_lock+0x17/0x19
  [&lt;ffffffff817de407&gt;] ? rtnl_lock+0x17/0x19
  [&lt;ffffffff817de44d&gt;] ? __rtnl_unlock+0x17/0x17
  [&lt;ffffffff818327c6&gt;] netlink_rcv_skb+0x4d/0x93
  [&lt;ffffffff817de42f&gt;] rtnetlink_rcv+0x26/0x2d
  [&lt;ffffffff81830f18&gt;] netlink_unicast+0xcb/0x150
  [&lt;ffffffff8183198e&gt;] netlink_sendmsg+0x501/0x523
  [&lt;ffffffff8115cba9&gt;] ? might_fault+0x59/0xa9
  [&lt;ffffffff817b5398&gt;] ? copy_from_user+0x2a/0x2c
  [&lt;ffffffff817b7b74&gt;] sock_sendmsg+0x34/0x3c
  [&lt;ffffffff817b7f6d&gt;] ___sys_sendmsg+0x1b8/0x255
  [&lt;ffffffff8115c5eb&gt;] ? handle_pte_fault+0xbd5/0xd4a
  [&lt;ffffffff8100a2b0&gt;] ? native_sched_clock+0x35/0x37
  [&lt;ffffffff8109e94b&gt;] ? sched_clock_local+0x12/0x72
  [&lt;ffffffff8109eb9c&gt;] ? sched_clock_cpu+0x9e/0xb7
  [&lt;ffffffff810cadbf&gt;] ? rcu_read_lock_held+0x3b/0x3d
  [&lt;ffffffff811ac1d8&gt;] ? __fcheck_files+0x4c/0x58
  [&lt;ffffffff811ac946&gt;] ? __fget_light+0x2d/0x52
  [&lt;ffffffff817b8adc&gt;] __sys_sendmsg+0x42/0x60
  [&lt;ffffffff817b8b0c&gt;] SyS_sendmsg+0x12/0x1c
  [&lt;ffffffff81a29e32&gt;] system_call_fastpath+0x12/0x17

Fixes: e7ed828f10bd8 ("netlink: support setting devgroup parameters")
Signed-off-by: Cong Wang &lt;xiyou.wangcong@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Luis Henriques &lt;luis.henriques@canonical.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit d079535d5e1bf5e2e7c856bae2483414ea21e137 upstream.

In case we move the whole dev group to another netns,
we should call for_each_netdev_safe(), otherwise we get
a soft lockup:

 NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [ip:798]
 irq event stamp: 255424
 hardirqs last  enabled at (255423): [&lt;ffffffff81a2aa95&gt;] restore_args+0x0/0x30
 hardirqs last disabled at (255424): [&lt;ffffffff81a2ad5a&gt;] apic_timer_interrupt+0x6a/0x80
 softirqs last  enabled at (255422): [&lt;ffffffff81079ebc&gt;] __do_softirq+0x2c1/0x3a9
 softirqs last disabled at (255417): [&lt;ffffffff8107a190&gt;] irq_exit+0x41/0x95
 CPU: 0 PID: 798 Comm: ip Not tainted 4.0.0-rc4+ #881
 Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
 task: ffff8800d1b88000 ti: ffff880119530000 task.ti: ffff880119530000
 RIP: 0010:[&lt;ffffffff810cad11&gt;]  [&lt;ffffffff810cad11&gt;] debug_lockdep_rcu_enabled+0x28/0x30
 RSP: 0018:ffff880119533778  EFLAGS: 00000246
 RAX: ffff8800d1b88000 RBX: 0000000000000002 RCX: 0000000000000038
 RDX: 0000000000000000 RSI: ffff8800d1b888c8 RDI: ffff8800d1b888c8
 RBP: ffff880119533778 R08: 0000000000000000 R09: 0000000000000000
 R10: 0000000000000000 R11: 000000000000b5c2 R12: 0000000000000246
 R13: ffff880119533708 R14: 00000000001d5a40 R15: ffff88011a7d5a40
 FS:  00007fc01315f740(0000) GS:ffff88011a600000(0000) knlGS:0000000000000000
 CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
 CR2: 00007f367a120988 CR3: 000000011849c000 CR4: 00000000000007f0
 Stack:
  ffff880119533798 ffffffff811ac868 ffffffff811ac831 ffffffff811ac828
  ffff8801195337c8 ffffffff811ac8c9 ffff8801195339b0 ffff8801197633e0
  0000000000000000 ffff8801195339b0 ffff8801195337d8 ffffffff811ad2d7
 Call Trace:
  [&lt;ffffffff811ac868&gt;] rcu_read_lock+0x37/0x6e
  [&lt;ffffffff811ac831&gt;] ? rcu_read_unlock+0x5f/0x5f
  [&lt;ffffffff811ac828&gt;] ? rcu_read_unlock+0x56/0x5f
  [&lt;ffffffff811ac8c9&gt;] __fget+0x2a/0x7a
  [&lt;ffffffff811ad2d7&gt;] fget+0x13/0x15
  [&lt;ffffffff811be732&gt;] proc_ns_fget+0xe/0x38
  [&lt;ffffffff817c7714&gt;] get_net_ns_by_fd+0x11/0x59
  [&lt;ffffffff817df359&gt;] rtnl_link_get_net+0x33/0x3e
  [&lt;ffffffff817df3d7&gt;] do_setlink+0x73/0x87b
  [&lt;ffffffff810b28ce&gt;] ? trace_hardirqs_off+0xd/0xf
  [&lt;ffffffff81a2aa95&gt;] ? retint_restore_args+0xe/0xe
  [&lt;ffffffff817e0301&gt;] rtnl_newlink+0x40c/0x699
  [&lt;ffffffff817dffe0&gt;] ? rtnl_newlink+0xeb/0x699
  [&lt;ffffffff81a29246&gt;] ? _raw_spin_unlock+0x28/0x33
  [&lt;ffffffff8143ed1e&gt;] ? security_capable+0x18/0x1a
  [&lt;ffffffff8107da51&gt;] ? ns_capable+0x4d/0x65
  [&lt;ffffffff817de5ce&gt;] rtnetlink_rcv_msg+0x181/0x194
  [&lt;ffffffff817de407&gt;] ? rtnl_lock+0x17/0x19
  [&lt;ffffffff817de407&gt;] ? rtnl_lock+0x17/0x19
  [&lt;ffffffff817de44d&gt;] ? __rtnl_unlock+0x17/0x17
  [&lt;ffffffff818327c6&gt;] netlink_rcv_skb+0x4d/0x93
  [&lt;ffffffff817de42f&gt;] rtnetlink_rcv+0x26/0x2d
  [&lt;ffffffff81830f18&gt;] netlink_unicast+0xcb/0x150
  [&lt;ffffffff8183198e&gt;] netlink_sendmsg+0x501/0x523
  [&lt;ffffffff8115cba9&gt;] ? might_fault+0x59/0xa9
  [&lt;ffffffff817b5398&gt;] ? copy_from_user+0x2a/0x2c
  [&lt;ffffffff817b7b74&gt;] sock_sendmsg+0x34/0x3c
  [&lt;ffffffff817b7f6d&gt;] ___sys_sendmsg+0x1b8/0x255
  [&lt;ffffffff8115c5eb&gt;] ? handle_pte_fault+0xbd5/0xd4a
  [&lt;ffffffff8100a2b0&gt;] ? native_sched_clock+0x35/0x37
  [&lt;ffffffff8109e94b&gt;] ? sched_clock_local+0x12/0x72
  [&lt;ffffffff8109eb9c&gt;] ? sched_clock_cpu+0x9e/0xb7
  [&lt;ffffffff810cadbf&gt;] ? rcu_read_lock_held+0x3b/0x3d
  [&lt;ffffffff811ac1d8&gt;] ? __fcheck_files+0x4c/0x58
  [&lt;ffffffff811ac946&gt;] ? __fget_light+0x2d/0x52
  [&lt;ffffffff817b8adc&gt;] __sys_sendmsg+0x42/0x60
  [&lt;ffffffff817b8b0c&gt;] SyS_sendmsg+0x12/0x1c
  [&lt;ffffffff81a29e32&gt;] system_call_fastpath+0x12/0x17

Fixes: e7ed828f10bd8 ("netlink: support setting devgroup parameters")
Signed-off-by: Cong Wang &lt;xiyou.wangcong@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Luis Henriques &lt;luis.henriques@canonical.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rtnetlink: call -&gt;dellink on failure when -&gt;newlink exists</title>
<updated>2015-03-12T16:27:15+00:00</updated>
<author>
<name>WANG Cong</name>
<email>xiyou.wangcong@gmail.com</email>
</author>
<published>2015-02-13T21:56:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=4681bfc95688ba8d49c4f7a3da4c2bf81ac18105'/>
<id>4681bfc95688ba8d49c4f7a3da4c2bf81ac18105</id>
<content type='text'>
commit 7afb8886a05be68e376655539a064ec672de8a8e upstream.

Ignacy reported that when eth0 is down and add a vlan device
on top of it like:

  ip link add link eth0 name eth0.1 up type vlan id 1

We will get a refcount leak:

  unregister_netdevice: waiting for eth0.1 to become free. Usage count = 2

The problem is when rtnl_configure_link() fails in rtnl_newlink(),
we simply call unregister_device(), but for stacked device like vlan,
we almost do nothing when we unregister the upper device, more work
is done when we unregister the lower device, so call its -&gt;dellink().

Reported-by: Ignacy Gawedzki &lt;ignacy.gawedzki@green-communications.fr&gt;
Signed-off-by: Cong Wang &lt;xiyou.wangcong@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
[ luis: backported to 3.16: based on davem's backport to 3.14 ]
Signed-off-by: Luis Henriques &lt;luis.henriques@canonical.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 7afb8886a05be68e376655539a064ec672de8a8e upstream.

Ignacy reported that when eth0 is down and add a vlan device
on top of it like:

  ip link add link eth0 name eth0.1 up type vlan id 1

We will get a refcount leak:

  unregister_netdevice: waiting for eth0.1 to become free. Usage count = 2

The problem is when rtnl_configure_link() fails in rtnl_newlink(),
we simply call unregister_device(), but for stacked device like vlan,
we almost do nothing when we unregister the upper device, more work
is done when we unregister the lower device, so call its -&gt;dellink().

Reported-by: Ignacy Gawedzki &lt;ignacy.gawedzki@green-communications.fr&gt;
Signed-off-by: Cong Wang &lt;xiyou.wangcong@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
[ luis: backported to 3.16: based on davem's backport to 3.14 ]
Signed-off-by: Luis Henriques &lt;luis.henriques@canonical.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rtnetlink: ifla_vf_policy: fix misuses of NLA_BINARY</title>
<updated>2015-03-12T16:27:07+00:00</updated>
<author>
<name>Daniel Borkmann</name>
<email>daniel@iogearbox.net</email>
</author>
<published>2015-02-05T17:44:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=21f90221f74858969b459db4af0dde7ab8bd597a'/>
<id>21f90221f74858969b459db4af0dde7ab8bd597a</id>
<content type='text'>
commit 364d5716a7adb91b731a35765d369602d68d2881 upstream.

ifla_vf_policy[] is wrong in advertising its individual member types as
NLA_BINARY since .type = NLA_BINARY in combination with .len declares the
len member as *max* attribute length [0, len].

The issue is that when do_setvfinfo() is being called to set up a VF
through ndo handler, we could set corrupted data if the attribute length
is less than the size of the related structure itself.

The intent is exactly the opposite, namely to make sure to pass at least
data of minimum size of len.

Fixes: ebc08a6f47ee ("rtnetlink: Add VF config code to rtnetlink")
Cc: Mitch Williams &lt;mitch.a.williams@intel.com&gt;
Cc: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;
Acked-by: Thomas Graf &lt;tgraf@suug.ch&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Luis Henriques &lt;luis.henriques@canonical.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 364d5716a7adb91b731a35765d369602d68d2881 upstream.

ifla_vf_policy[] is wrong in advertising its individual member types as
NLA_BINARY since .type = NLA_BINARY in combination with .len declares the
len member as *max* attribute length [0, len].

The issue is that when do_setvfinfo() is being called to set up a VF
through ndo handler, we could set corrupted data if the attribute length
is less than the size of the related structure itself.

The intent is exactly the opposite, namely to make sure to pass at least
data of minimum size of len.

Fixes: ebc08a6f47ee ("rtnetlink: Add VF config code to rtnetlink")
Cc: Mitch Williams &lt;mitch.a.williams@intel.com&gt;
Cc: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;
Acked-by: Thomas Graf &lt;tgraf@suug.ch&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Luis Henriques &lt;luis.henriques@canonical.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bridge: dont send notification when skb-&gt;len == 0 in rtnl_bridge_notify</title>
<updated>2015-02-10T13:38:50+00:00</updated>
<author>
<name>Roopa Prabhu</name>
<email>roopa@cumulusnetworks.com</email>
</author>
<published>2015-01-29T00:23:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=00fbfb138ba9407327145c35d9628ed89a004489'/>
<id>00fbfb138ba9407327145c35d9628ed89a004489</id>
<content type='text'>
commit 59ccaaaa49b5b096cdc1f16706a9f931416b2332 upstream.

Reported in: https://bugzilla.kernel.org/show_bug.cgi?id=92081

This patch avoids calling rtnl_notify if the device ndo_bridge_getlink
handler does not return any bytes in the skb.

Alternately, the skb-&gt;len check can be moved inside rtnl_notify.

For the bridge vlan case described in 92081, there is also a fix needed
in bridge driver to generate a proper notification. Will fix that in
subsequent patch.

v2: rebase patch on net tree

Signed-off-by: Roopa Prabhu &lt;roopa@cumulusnetworks.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Luis Henriques &lt;luis.henriques@canonical.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 59ccaaaa49b5b096cdc1f16706a9f931416b2332 upstream.

Reported in: https://bugzilla.kernel.org/show_bug.cgi?id=92081

This patch avoids calling rtnl_notify if the device ndo_bridge_getlink
handler does not return any bytes in the skb.

Alternately, the skb-&gt;len check can be moved inside rtnl_notify.

For the bridge vlan case described in 92081, there is also a fix needed
in bridge driver to generate a proper notification. Will fix that in
subsequent patch.

v2: rebase patch on net tree

Signed-off-by: Roopa Prabhu &lt;roopa@cumulusnetworks.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Luis Henriques &lt;luis.henriques@canonical.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rtnetlink: release net refcnt on error in do_setlink()</title>
<updated>2014-12-15T11:09:42+00:00</updated>
<author>
<name>Nicolas Dichtel</name>
<email>nicolas.dichtel@6wind.com</email>
</author>
<published>2014-11-27T09:16:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e219e662fa54df4679d45840d2e7f87ea73bc010'/>
<id>e219e662fa54df4679d45840d2e7f87ea73bc010</id>
<content type='text'>
commit e0ebde0e131b529fd721b24f62872def5ec3718c upstream.

rtnl_link_get_net() holds a reference on the 'struct net', we need to release
it in case of error.

CC: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
Fixes: b51642f6d77b ("net: Enable a userns root rtnl calls that are safe for unprivilged users")
Signed-off-by: Nicolas Dichtel &lt;nicolas.dichtel@6wind.com&gt;
Reviewed-by: "Eric W. Biederman" &lt;ebiederm@xmission.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Luis Henriques &lt;luis.henriques@canonical.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit e0ebde0e131b529fd721b24f62872def5ec3718c upstream.

rtnl_link_get_net() holds a reference on the 'struct net', we need to release
it in case of error.

CC: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
Fixes: b51642f6d77b ("net: Enable a userns root rtnl calls that are safe for unprivilged users")
Signed-off-by: Nicolas Dichtel &lt;nicolas.dichtel@6wind.com&gt;
Reviewed-by: "Eric W. Biederman" &lt;ebiederm@xmission.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Luis Henriques &lt;luis.henriques@canonical.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rtnetlink: fix VF info size</title>
<updated>2014-10-15T10:05:26+00:00</updated>
<author>
<name>Jiri Benc</name>
<email>jbenc@redhat.com</email>
</author>
<published>2014-08-08T14:44:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=53f8c7d24b35eecf20831e0b557a142a4d64e256'/>
<id>53f8c7d24b35eecf20831e0b557a142a4d64e256</id>
<content type='text'>
[ Upstream commit 945a36761fd7877660f630bbdeb4ff9ff80d1935 ]

Commit 1d8faf48c74b8 ("net/core: Add VF link state control") added new
attribute to IFLA_VF_INFO group in rtnl_fill_ifinfo but did not adjust size
of the allocated memory in if_nlmsg_size/rtnl_vfinfo_size. As the result, we
may trigger warnings in rtnl_getlink and similar functions when many VF
links are enabled, as the information does not fit into the allocated skb.

Fixes: 1d8faf48c74b8 ("net/core: Add VF link state control")
Reported-by: Yulong Pei &lt;ypei@redhat.com&gt;
Signed-off-by: Jiri Benc &lt;jbenc@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 945a36761fd7877660f630bbdeb4ff9ff80d1935 ]

Commit 1d8faf48c74b8 ("net/core: Add VF link state control") added new
attribute to IFLA_VF_INFO group in rtnl_fill_ifinfo but did not adjust size
of the allocated memory in if_nlmsg_size/rtnl_vfinfo_size. As the result, we
may trigger warnings in rtnl_getlink and similar functions when many VF
links are enabled, as the information does not fit into the allocated skb.

Fixes: 1d8faf48c74b8 ("net/core: Add VF link state control")
Reported-by: Yulong Pei &lt;ypei@redhat.com&gt;
Signed-off-by: Jiri Benc &lt;jbenc@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
