Eric Dumazet
e688a60480
net: introduce DST_NOPEER dst flag
...
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 87c48fa3b46 (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>
2011-12-22 22:34:56 -05:00
..
2011-11-23 16:07:00 -05:00
2011-10-19 19:24:39 -04:00
2011-11-12 18:13:32 -05:00
2011-07-17 23:11:17 -07:00
2011-10-11 18:43:53 -04:00
2011-05-08 13:48:57 -07:00
2011-12-01 21:46:12 -05:00
2011-04-22 11:04:14 -07:00
2011-06-09 20:38:07 -07:00
2011-03-24 18:06:47 -07:00
2011-10-31 19:30:30 -04:00
2011-09-16 17:42:26 -04:00
2011-10-31 19:30:30 -04:00
2011-08-02 04:29:23 -07:00
2011-10-13 16:05:07 -04:00
2011-11-23 17:31:39 -05:00
2011-05-24 15:22:17 +02:00
2011-11-22 16:03:10 -05:00
2010-07-12 12:57:54 -07:00
2011-08-06 18:33:19 -07:00
2011-10-19 03:10:46 -04:00
2011-10-31 19:30:28 -04:00
2011-08-06 18:33:19 -07:00
2011-11-23 19:19:32 -05:00
2011-10-19 03:10:46 -04:00
2011-10-20 16:20:30 -04:00
2011-06-21 20:33:34 -07:00
2011-11-23 19:19:32 -05:00
2011-10-24 03:06:21 -04:00
2011-10-22 00:07:47 -04:00
2011-04-22 11:04:14 -07:00
2011-12-20 14:09:15 -05:00
2011-12-12 18:50:51 -05:00
2011-10-31 19:30:30 -04:00
2011-02-01 15:35:25 -08:00
2011-05-13 16:08:13 -04:00
2011-11-21 18:46:18 +01:00
2011-11-18 14:38:59 -05:00
2011-10-31 19:30:30 -04:00
2010-10-27 11:37:31 -07:00
2011-10-31 19:30:30 -04:00
2011-12-22 22:34:56 -05:00
2011-10-31 19:30:30 -04:00
2011-06-08 17:05:30 -07:00
2011-03-10 00:40:17 -08:00
2010-08-27 19:31:56 -07:00
2011-05-08 15:51:57 -07:00
2009-12-03 16:06:13 -08:00
2011-03-10 00:40:17 -08:00
2011-03-10 00:40:17 -08:00
2011-03-10 00:40:17 -08:00
2011-03-10 00:40:17 -08:00
2011-10-21 05:22:42 -04:00
2011-11-16 16:57:45 -05:00
2011-03-31 11:26:23 -03:00
2011-10-27 00:44:35 -04:00
2011-11-08 14:02:47 -05:00
2010-11-17 12:27:46 -08:00
2011-03-10 00:40:17 -08:00
2011-10-24 17:36:08 -04:00
2011-03-10 00:40:17 -08:00
2011-03-10 00:40:17 -08:00
2011-03-10 00:40:17 -08:00
2011-03-31 11:26:23 -03:00
2011-10-24 17:36:08 -04:00
2010-10-27 11:37:32 -07:00
2009-09-30 16:12:20 -07:00
2011-12-01 14:12:55 -05:00
2011-11-06 19:44:47 -08:00
2010-07-12 12:57:54 -07:00
2010-12-12 22:08:17 -08:00
2011-07-01 17:33:19 -07:00
2011-10-24 03:01:22 -04:00
2011-10-31 19:30:30 -04:00
2010-08-30 13:50:45 -07:00