Eric Dumazet
d23270aae3
net: introduce DST_NOPEER dst flag
[ Upstream commit e688a60480 ]
Chris Boot reported crashes occurring in ipv6_select_ident().
[ 461.457562] RIP: 0010:[<ffffffff812dde61>] [<ffffffff812dde61>]
ipv6_select_ident+0x31/0xa7
[ 461.578229] Call Trace:
[ 461.580742] <IRQ>
[ 461.582870] [<ffffffff812efa7f>] ? udp6_ufo_fragment+0x124/0x1a2
[ 461.589054] [<ffffffff812dbfe0>] ? ipv6_gso_segment+0xc0/0x155
[ 461.595140] [<ffffffff812700c6>] ? skb_gso_segment+0x208/0x28b
[ 461.601198] [<ffffffffa03f236b>] ? ipv6_confirm+0x146/0x15e
[nf_conntrack_ipv6]
[ 461.608786] [<ffffffff81291c4d>] ? nf_iterate+0x41/0x77
[ 461.614227] [<ffffffff81271d64>] ? dev_hard_start_xmit+0x357/0x543
[ 461.620659] [<ffffffff81291cf6>] ? nf_hook_slow+0x73/0x111
[ 461.626440] [<ffffffffa0379745>] ? br_parse_ip_options+0x19a/0x19a
[bridge]
[ 461.633581] [<ffffffff812722ff>] ? dev_queue_xmit+0x3af/0x459
[ 461.639577] [<ffffffffa03747d2>] ? br_dev_queue_push_xmit+0x72/0x76
[bridge]
[ 461.646887] [<ffffffffa03791e3>] ? br_nf_post_routing+0x17d/0x18f
[bridge]
[ 461.653997] [<ffffffff81291c4d>] ? nf_iterate+0x41/0x77
[ 461.659473] [<ffffffffa0374760>] ? br_flood+0xfa/0xfa [bridge]
[ 461.665485] [<ffffffff81291cf6>] ? nf_hook_slow+0x73/0x111
[ 461.671234] [<ffffffffa0374760>] ? br_flood+0xfa/0xfa [bridge]
[ 461.677299] [<ffffffffa0379215>] ?
nf_bridge_update_protocol+0x20/0x20 [bridge]
[ 461.684891] [<ffffffffa03bb0e5>] ? nf_ct_zone+0xa/0x17 [nf_conntrack]
[ 461.691520] [<ffffffffa0374760>] ? br_flood+0xfa/0xfa [bridge]
[ 461.697572] [<ffffffffa0374812>] ? NF_HOOK.constprop.8+0x3c/0x56
[bridge]
[ 461.704616] [<ffffffffa0379031>] ?
nf_bridge_push_encap_header+0x1c/0x26 [bridge]
[ 461.712329] [<ffffffffa037929f>] ? br_nf_forward_finish+0x8a/0x95
[bridge]
[ 461.719490] [<ffffffffa037900a>] ?
nf_bridge_pull_encap_header+0x1c/0x27 [bridge]
[ 461.727223] [<ffffffffa0379974>] ? br_nf_forward_ip+0x1c0/0x1d4 [bridge]
[ 461.734292] [<ffffffff81291c4d>] ? nf_iterate+0x41/0x77
[ 461.739758] [<ffffffffa03748cc>] ? __br_deliver+0xa0/0xa0 [bridge]
[ 461.746203] [<ffffffff81291cf6>] ? nf_hook_slow+0x73/0x111
[ 461.751950] [<ffffffffa03748cc>] ? __br_deliver+0xa0/0xa0 [bridge]
[ 461.758378] [<ffffffffa037533a>] ? NF_HOOK.constprop.4+0x56/0x56
[bridge]
This is caused by bridge netfilter special dst_entry (fake_rtable), a
special shared entry, where attaching an inetpeer makes no sense.
Problem is present since commit 87c48fa3b4 (ipv6: make fragment
identifications less predictable)
Introduce DST_NOPEER dst flag and make sure ipv6_select_ident() and
__ip_select_ident() fallback to the 'no peer attached' handling.
Reported-by: Chris Boot <bootc@bootc.net>
Tested-by: Chris Boot <bootc@bootc.net>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-06 14:17:31 -08:00
..
2011-09-06 08:17:16 -05:00
2011-07-15 10:05:24 -04:00
2011-06-01 21:15:38 -07:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00
2011-05-02 15:26:28 -07:00
2012-01-06 14:17:28 -08:00
2010-08-20 01:42:59 -07:00
2011-07-06 02:52:16 -07:00
2011-04-24 10:54:56 -07:00
2009-08-12 21:54:50 -07:00
2011-04-24 10:54:56 -07:00
2011-04-24 10:54:56 -07:00
2011-01-13 21:48:25 -08:00
2011-07-18 00:40:17 -07:00
2011-04-24 10:54:56 -07:00
2011-07-26 16:49:47 -07:00
2009-03-24 23:32:03 -07:00
2011-09-08 14:43:03 -07:00
2008-11-19 15:44:53 -08:00
2011-08-01 17:58:33 -07:00
2010-10-07 09:43:45 +02:00
2011-05-05 11:10:14 -07:00
2005-08-29 15:32:25 -07:00
2010-12-31 10:47:46 -08:00
2011-07-05 23:42:17 -07:00
2010-11-08 13:50:08 -08:00
2011-03-12 15:08:55 -08:00
2006-03-20 22:42:39 -08:00
2010-06-03 03:21:52 -07:00
2011-03-12 15:08:55 -08:00
2011-03-12 15:08:55 -08:00
2009-03-21 19:06:54 -07:00
2008-01-28 14:55:58 -08:00
2011-07-18 00:40:17 -07:00
2012-01-06 14:17:31 -08:00
2008-01-31 19:27:02 -08:00
2009-03-27 00:16:21 -07:00
2010-10-27 11:37:32 -07:00
2012-01-06 14:17:29 -08:00
2011-05-12 17:46:56 -04:00
2011-03-31 11:26:23 -03:00
2011-06-22 16:09:45 -04:00
2010-08-21 23:05:39 -07:00
2011-02-04 15:59:53 -08:00
2011-01-28 15:44:29 -05:00
2009-11-06 14:32:18 +03:00
2009-07-23 17:08:51 +04:00
2011-05-19 16:21:22 -04:00
2011-05-08 15:28:28 -07:00
2009-12-08 20:17:51 -08:00
2010-07-12 20:21:46 -07:00
2011-05-18 18:32:03 -04:00
2011-05-12 18:52:14 -04:00
2010-06-30 13:44:29 -07:00
2011-07-26 16:49:47 -07:00
2011-08-07 22:52:32 -07:00
2011-07-26 16:49:47 -07:00
2011-12-09 08:56:07 -08:00
2006-12-22 11:12:07 -08:00
2011-07-17 23:11:35 -07:00
2011-04-24 10:54:56 -07:00
2010-10-25 13:09:45 -07:00
2011-04-14 15:05:22 -07:00
2011-10-12 18:32:15 +02:00
2011-07-05 22:34:52 -07:00
2010-02-16 23:05:38 -08:00
2008-06-11 21:00:38 -07:00
2010-10-27 11:37:32 -07:00
2011-07-21 21:25:58 -07:00
2011-04-24 10:54:56 -07:00
2011-03-31 11:26:23 -03:00
2005-04-16 15:20:36 -07:00
2011-07-26 16:49:47 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2009-12-26 20:43:57 -08:00
2008-02-29 11:46:17 -08:00
2011-05-13 15:13:24 -04:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2008-03-31 21:02:47 -07:00
2011-07-26 16:49:47 -07:00
2011-07-20 15:04:35 -04:00
2010-06-03 03:21:52 -07:00
2010-04-23 13:35:55 +09:00
2011-04-24 10:54:56 -07:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:47 -07:00
2011-05-27 13:41:33 -04:00
2009-01-06 11:38:15 -07:00
2011-04-24 10:54:56 -07:00
2011-08-01 17:58:33 -07:00
2011-06-22 16:09:45 -04:00
2010-03-30 22:02:32 +09:00
2006-09-22 14:55:04 -07:00
2011-07-05 15:26:57 -04:00
2009-08-19 23:08:22 +04:00
2005-08-29 16:01:32 -07:00
2011-05-17 14:16:58 -04:00
2010-12-21 12:43:16 -08:00
2011-07-06 02:52:16 -07:00
2011-01-24 15:32:47 -08:00
2009-03-21 19:06:50 -07:00
2010-09-08 13:42:22 -07:00
2011-04-24 10:54:56 -07:00
2011-12-09 08:56:08 -08:00
2010-11-22 15:48:51 -05:00
2011-09-15 14:49:43 -04:00
2011-03-27 17:59:04 -07:00
2011-05-18 18:42:43 -04:00
2011-06-09 20:38:07 -07:00
2011-07-06 02:52:16 -07:00
2010-11-24 11:16:43 -08:00
2011-08-06 18:33:19 -07:00
2005-07-05 15:12:04 -07:00
2011-06-11 16:23:59 -07:00
2011-07-25 13:56:39 -07:00
2008-07-05 21:25:39 -07:00
2006-01-03 13:10:57 -08:00
2011-09-18 21:48:01 -04:00
2010-12-01 18:09:13 -08:00
2011-08-30 17:39:01 -04:00
2011-03-01 12:35:03 -08:00
2011-10-17 19:07:30 -04:00
2009-10-07 16:39:43 -04:00
2011-06-24 17:50:44 -07:00
2011-03-31 11:26:23 -03:00
2010-11-28 11:12:20 -08:00
2010-04-22 16:12:36 -07:00
2011-05-11 14:26:58 -04:00