bonding: Incorrect TX queue offset, CVE-2011-1581
authorPhil Oester <kernel@linuxace.com>
Mon, 6 Jun 2011 10:35:23 +0000 (11:35 +0100)
committerSteve Conklin <sconklin@canonical.com>
Fri, 15 Jul 2011 17:20:43 +0000 (12:20 -0500)
commitf012bf22aff294990454a85cc9a782ea4ef7d061
tree29737a546b53737c3a482d4a123eb1b59037c3e7
parent75789684132ddbcfa51e52323f2805ff0582491a
bonding: Incorrect TX queue offset, CVE-2011-1581

When packets come in from a device with >= 16 receive queues
headed out a bonding interface, syslog gets filled with this:

    kernel: bond0 selects TX queue 16, but real number of TX queues is 16

because queue_mapping is offset by 1.  Adjust return value
to account for the offset.

This is a revision of my earlier patch (which did not use the
skb_rx_queue_* helpers - thanks to Ben for the suggestion).
Andy submitted a similar patch which emits a pr_warning on
invalid queue selection, but I believe the log spew is
not useful.  We can revisit that question in the future,
but in the interim I believe fixing the core problem is
worthwhile.

Signed-off-by: Phil Oester <kernel@linuxace.com>
Signed-off-by: Andy Gospodarek <andy@greyhouse.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

(cherry picked from commit fd0e435b0fe85622f167b84432552885a4856ac8)
CVE-2011-1581
BugLink: http://bugs.launchpad.net/bugs/792312
Signed-off-by: Andy Whitcroft <apw@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>
Acked-by: Leann Ogasawara <leann.ogasawara@canonical.com>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
drivers/net/bonding/bond_main.c