Patrick McHardy
9d7b0fc1ef
net: ipv6: fix oops in inet_putpeer()
Commit 97bab73f (inet: Hide route peer accesses behind helpers.) introduced
a bug in xfrm6_policy_destroy(). The xfrm_dst's _rt6i_peer member is not
initialized, causing a false positive result from inetpeer_ptr_is_peer(),
which in turn causes a NULL pointer dereference in inet_putpeer().
Pid: 314, comm: kworker/0:1 Not tainted 3.6.0-rc1+ #17 To Be Filled By O.E.M. To Be Filled By O.E.M./P4S800D-X
EIP: 0060:[<c03abf93>] EFLAGS: 00010246 CPU: 0
EIP is at inet_putpeer+0xe/0x16
EAX: 00000000 EBX: f3481700 ECX: 00000000 EDX: 000dd641
ESI: f3481700 EDI: c05e949c EBP: f551def4 ESP: f551def4
DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068
CR0: 8005003b CR2: 00000070 CR3: 3243d000 CR4: 00000750
DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
DR6: ffff0ff0 DR7: 00000400
f551df04 c0423de1 00000000 f3481700 f551df18 c038d5f7 f254b9f8 f551df28
f34f85d8 f551df20 c03ef48d f551df3c c0396870 f30697e8 f24e1738 c05e98f4
f5509540 c05cd2b4 f551df7c c0142d2b c043feb5 f5509540 00000000 c05cd2e8
[<c0423de1>] xfrm6_dst_destroy+0x42/0xdb
[<c038d5f7>] dst_destroy+0x1d/0xa4
[<c03ef48d>] xfrm_bundle_flo_delete+0x2b/0x36
[<c0396870>] flow_cache_gc_task+0x85/0x9f
[<c0142d2b>] process_one_work+0x122/0x441
[<c043feb5>] ? apic_timer_interrupt+0x31/0x38
[<c03967eb>] ? flow_cache_new_hashrnd+0x2b/0x2b
[<c0143e2d>] worker_thread+0x113/0x3cc
Fix by adding a init_dst() callback to struct xfrm_policy_afinfo to
properly initialize the dst's peer pointer.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-08-20 02:56:56 -07:00
..
2012-01-05 10:51:44 -06:00
2012-07-15 12:18:29 -03:00
2012-06-25 16:44:12 -07:00
2011-03-31 11:26:23 -03:00
2012-03-07 22:52:24 -08:00
2012-07-10 23:56:33 -07:00
2012-07-30 14:53:22 -07:00
2012-07-09 16:42:12 -04:00
2012-06-17 16:29:38 -07:00
2012-07-22 12:13:46 -07:00
2010-08-20 01:42:59 -07:00
2011-07-06 02:52:16 -07:00
2012-07-18 11:28:46 -07:00
2009-08-12 21:54:50 -07:00
2011-04-24 10:54:56 -07:00
2012-06-08 14:27:23 -07:00
2011-01-13 21:48:25 -08:00
2012-07-20 16:06:10 -07:00
2011-11-30 18:51:03 -05:00
2012-04-23 22:14:47 -04:00
2011-08-08 14:26:29 -04:00
2012-08-02 15:30:49 +02:00
2012-06-01 14:18:29 -04:00
2010-10-07 09:43:45 +02:00
2012-08-10 16:52:54 -07:00
2012-04-15 12:44:40 -04:00
2011-10-06 15:49:51 -04:00
2012-04-05 05:08:04 -04:00
2010-11-08 13:50:08 -08:00
2012-04-15 12:44:40 -04:00
2010-06-03 03:21:52 -07:00
2012-07-05 01:12:14 -07:00
2012-04-15 12:44:40 -04:00
2011-12-01 11:41:06 -05:00
2012-07-19 10:43:03 -07:00
2012-08-08 16:00:28 -07:00
2012-06-29 01:36:36 -07:00
2011-11-29 13:17:03 -05:00
2012-07-20 13:36:54 -07:00
2011-05-12 17:46:56 -04:00
2011-03-31 11:26:23 -03:00
2012-06-28 17:56:43 -07:00
2010-08-21 23:05:39 -07:00
2012-04-15 12:44:40 -04:00
2011-11-11 12:32:50 -05:00
2012-05-16 15:16:56 -04:00
2011-11-14 00:19:42 -05:00
2012-05-15 20:14:35 -04:00
2012-07-16 03:44:56 -07:00
2012-07-26 15:50:39 -07:00
2012-07-19 11:02:03 -07:00
2012-08-06 13:33:21 -07:00
2011-10-22 01:25:23 -04:00
2012-05-18 01:40:27 -04:00
2012-06-19 21:22:05 -07:00
2012-08-06 13:33:21 -07:00
2011-12-14 13:34:55 -05:00
2012-07-10 22:40:14 -07:00
2012-07-05 02:41:58 -07:00
2012-07-18 08:59:58 -07:00
2012-06-29 00:52:32 -07:00
2012-07-31 15:02:02 -07:00
2012-07-17 12:00:46 +02:00
2012-08-10 14:08:57 -07:00
2010-02-16 23:05:38 -08:00
2012-04-14 14:47:05 -04:00
2012-07-18 11:28:46 -07:00
2011-04-24 10:54:56 -07:00
2011-03-31 11:26:23 -03:00
2012-05-17 18:45:20 -04:00
2011-10-31 19:32:32 -04:00
2012-04-15 12:44:40 -04:00
2009-12-26 20:43:57 -08:00
2012-05-15 20:14:35 -04:00
2012-08-14 16:51:18 -07:00
2012-07-12 12:10:46 +02:00
2012-06-26 21:06:11 -07:00
2010-06-03 03:21:52 -07:00
2010-04-23 13:35:55 +09:00
2012-07-11 23:39:11 -07:00
2012-07-05 01:03:06 -07:00
2012-07-16 22:31:34 -07:00
2011-05-27 13:41:33 -04:00
2012-07-05 02:21:55 -07:00
2011-08-01 17:58:33 -07:00
2012-04-02 04:33:45 -04:00
2012-07-22 12:44:01 -07:00
2010-03-30 22:02:32 +09:00
2009-08-19 23:08:22 +04:00
2011-05-17 14:16:58 -04:00
2010-12-21 12:43:16 -08:00
2012-04-15 12:44:40 -04:00
2012-07-26 15:50:39 -07:00
2010-09-08 13:42:22 -07:00
2012-05-19 01:08:16 -04:00
2012-04-16 23:53:11 -04:00
2012-07-17 12:16:39 +02:00
2011-09-15 14:49:43 -04:00
2011-03-27 17:59:04 -07:00
2012-07-31 15:06:50 -07:00
2012-07-20 11:06:59 -07:00
2012-07-20 11:07:00 -07:00
2012-07-22 23:58:00 +04:00
2011-10-21 05:22:42 -04:00
2012-01-09 13:08:28 -08:00
2012-08-02 00:19:17 -07:00
2012-04-10 10:04:07 -07:00
2012-08-09 20:56:09 -07:00
2012-06-09 14:56:12 -07:00
2011-08-30 17:39:01 -04:00
2012-04-28 22:21:51 -04:00
2012-03-12 17:05:21 -07:00
2009-10-07 16:39:43 -04:00
2012-04-15 12:44:40 -04:00
2012-05-16 15:17:08 -04:00
2012-04-15 12:44:40 -04:00
2010-04-22 16:12:36 -07:00
2012-08-20 02:56:56 -07:00