Waiman Long
f1afcf9488
KEYS: Don't write out to userspace while holding key semaphore
commit d3ec10aa95 upstream.
A lockdep circular locking dependency report was seen when running a
keyutils test:
[12537.027242] ======================================================
[12537.059309] WARNING: possible circular locking dependency detected
[12537.088148] 4.18.0-147.7.1.el8_1.x86_64+debug #1 Tainted: G OE --------- - -
[12537.125253] ------------------------------------------------------
[12537.153189] keyctl/25598 is trying to acquire lock:
[12537.175087] 000000007c39f96c (&mm->mmap_sem){++++}, at: __might_fault+0xc4/0x1b0
[12537.208365]
[12537.208365] but task is already holding lock:
[12537.234507] 000000003de5b58d (&type->lock_class){++++}, at: keyctl_read_key+0x15a/0x220
[12537.270476]
[12537.270476] which lock already depends on the new lock.
[12537.270476]
[12537.307209]
[12537.307209] the existing dependency chain (in reverse order) is:
[12537.340754]
[12537.340754] -> #3 (&type->lock_class){++++}:
[12537.367434] down_write+0x4d/0x110
[12537.385202] __key_link_begin+0x87/0x280
[12537.405232] request_key_and_link+0x483/0xf70
[12537.427221] request_key+0x3c/0x80
[12537.444839] dns_query+0x1db/0x5a5 [dns_resolver]
[12537.468445] dns_resolve_server_name_to_ip+0x1e1/0x4d0 [cifs]
[12537.496731] cifs_reconnect+0xe04/0x2500 [cifs]
[12537.519418] cifs_readv_from_socket+0x461/0x690 [cifs]
[12537.546263] cifs_read_from_socket+0xa0/0xe0 [cifs]
[12537.573551] cifs_demultiplex_thread+0x311/0x2db0 [cifs]
[12537.601045] kthread+0x30c/0x3d0
[12537.617906] ret_from_fork+0x3a/0x50
[12537.636225]
[12537.636225] -> #2 (root_key_user.cons_lock){+.+.}:
[12537.664525] __mutex_lock+0x105/0x11f0
[12537.683734] request_key_and_link+0x35a/0xf70
[12537.705640] request_key+0x3c/0x80
[12537.723304] dns_query+0x1db/0x5a5 [dns_resolver]
[12537.746773] dns_resolve_server_name_to_ip+0x1e1/0x4d0 [cifs]
[12537.775607] cifs_reconnect+0xe04/0x2500 [cifs]
[12537.798322] cifs_readv_from_socket+0x461/0x690 [cifs]
[12537.823369] cifs_read_from_socket+0xa0/0xe0 [cifs]
[12537.847262] cifs_demultiplex_thread+0x311/0x2db0 [cifs]
[12537.873477] kthread+0x30c/0x3d0
[12537.890281] ret_from_fork+0x3a/0x50
[12537.908649]
[12537.908649] -> #1 (&tcp_ses->srv_mutex){+.+.}:
[12537.935225] __mutex_lock+0x105/0x11f0
[12537.954450] cifs_call_async+0x102/0x7f0 [cifs]
[12537.977250] smb2_async_readv+0x6c3/0xc90 [cifs]
[12538.000659] cifs_readpages+0x120a/0x1e50 [cifs]
[12538.023920] read_pages+0xf5/0x560
[12538.041583] __do_page_cache_readahead+0x41d/0x4b0
[12538.067047] ondemand_readahead+0x44c/0xc10
[12538.092069] filemap_fault+0xec1/0x1830
[12538.111637] __do_fault+0x82/0x260
[12538.129216] do_fault+0x419/0xfb0
[12538.146390] __handle_mm_fault+0x862/0xdf0
[12538.167408] handle_mm_fault+0x154/0x550
[12538.187401] __do_page_fault+0x42f/0xa60
[12538.207395] do_page_fault+0x38/0x5e0
[12538.225777] page_fault+0x1e/0x30
[12538.243010]
[12538.243010] -> #0 (&mm->mmap_sem){++++}:
[12538.267875] lock_acquire+0x14c/0x420
[12538.286848] __might_fault+0x119/0x1b0
[12538.306006] keyring_read_iterator+0x7e/0x170
[12538.327936] assoc_array_subtree_iterate+0x97/0x280
[12538.352154] keyring_read+0xe9/0x110
[12538.370558] keyctl_read_key+0x1b9/0x220
[12538.391470] do_syscall_64+0xa5/0x4b0
[12538.410511] entry_SYSCALL_64_after_hwframe+0x6a/0xdf
[12538.435535]
[12538.435535] other info that might help us debug this:
[12538.435535]
[12538.472829] Chain exists of:
[12538.472829] &mm->mmap_sem --> root_key_user.cons_lock --> &type->lock_class
[12538.472829]
[12538.524820] Possible unsafe locking scenario:
[12538.524820]
[12538.551431] CPU0 CPU1
[12538.572654] ---- ----
[12538.595865] lock(&type->lock_class);
[12538.613737] lock(root_key_user.cons_lock);
[12538.644234] lock(&type->lock_class);
[12538.672410] lock(&mm->mmap_sem);
[12538.687758]
[12538.687758] *** DEADLOCK ***
[12538.687758]
[12538.714455] 1 lock held by keyctl/25598:
[12538.732097] #0: 000000003de5b58d (&type->lock_class){++++}, at: keyctl_read_key+0x15a/0x220
[12538.770573]
[12538.770573] stack backtrace:
[12538.790136] CPU: 2 PID: 25598 Comm: keyctl Kdump: loaded Tainted: G
[12538.844855] Hardware name: HP ProLiant DL360 Gen9/ProLiant DL360 Gen9, BIOS P89 12/27/2015
[12538.881963] Call Trace:
[12538.892897] dump_stack+0x9a/0xf0
[12538.907908] print_circular_bug.isra.25.cold.50+0x1bc/0x279
[12538.932891] ? save_trace+0xd6/0x250
[12538.948979] check_prev_add.constprop.32+0xc36/0x14f0
[12538.971643] ? keyring_compare_object+0x104/0x190
[12538.992738] ? check_usage+0x550/0x550
[12539.009845] ? sched_clock+0x5/0x10
[12539.025484] ? sched_clock_cpu+0x18/0x1e0
[12539.043555] __lock_acquire+0x1f12/0x38d0
[12539.061551] ? trace_hardirqs_on+0x10/0x10
[12539.080554] lock_acquire+0x14c/0x420
[12539.100330] ? __might_fault+0xc4/0x1b0
[12539.119079] __might_fault+0x119/0x1b0
[12539.135869] ? __might_fault+0xc4/0x1b0
[12539.153234] keyring_read_iterator+0x7e/0x170
[12539.172787] ? keyring_read+0x110/0x110
[12539.190059] assoc_array_subtree_iterate+0x97/0x280
[12539.211526] keyring_read+0xe9/0x110
[12539.227561] ? keyring_gc_check_iterator+0xc0/0xc0
[12539.249076] keyctl_read_key+0x1b9/0x220
[12539.266660] do_syscall_64+0xa5/0x4b0
[12539.283091] entry_SYSCALL_64_after_hwframe+0x6a/0xdf
One way to prevent this deadlock scenario from happening is to not
allow writing to userspace while holding the key semaphore. Instead,
an internal buffer is allocated for getting the keys out from the
read method first before copying them out to userspace without holding
the lock.
That requires taking out the __user modifier from all the relevant
read methods as well as additional changes to not use any userspace
write helpers. That is,
1) The put_user() call is replaced by a direct copy.
2) The copy_to_user() call is replaced by memcpy().
3) All the fault handling code is removed.
Compiling on a x86-64 system, the size of the rxrpc_read() function is
reduced from 3795 bytes to 2384 bytes with this patch.
Fixes: ^1da177e4c3f4 ("Linux-2.6.12-rc2")
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: Waiman Long <longman@redhat.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-04-23 10:36:45 +02:00
..
2019-08-09 09:15:05 +02:00
2019-06-26 09:18:54 -07:00
2019-02-06 09:36:36 -08:00
2020-01-14 20:08:28 +01:00
2020-04-02 15:11:02 +02:00
2019-09-17 10:27:46 -07:00
2019-07-17 09:55:43 -07:00
2020-04-01 11:01:34 +02:00
2019-06-19 17:09:55 +02:00
2019-09-18 11:14:31 -07:00
2019-07-24 14:11:52 -07:00
2019-06-19 17:09:55 +02:00
2020-02-19 19:53:09 +01:00
2019-08-28 17:24:22 +02:00
2019-06-05 17:37:07 +02:00
2019-08-11 10:48:28 +02:00
2019-09-19 14:14:28 -07:00
2019-09-16 09:56:27 -07:00
2019-08-20 10:35:46 +01:00
2019-05-31 11:13:10 +02:00
2019-07-03 17:52:08 -04:00
2019-09-17 00:40:05 -05:00
2020-02-11 04:35:52 -08:00
2018-11-22 11:38:36 -08:00
2020-04-13 10:48:10 +02:00
2020-04-01 11:01:27 +02:00
2019-09-21 10:59:54 -07:00
2020-03-05 16:43:44 +01:00
2019-09-13 12:47:36 +02:00
2019-09-13 12:47:36 +02:00
2019-09-13 12:47:36 +02:00
2019-09-13 12:47:36 +02:00
2019-07-08 09:54:55 -07:00
2019-06-05 17:36:37 +02:00
2019-08-23 11:09:41 +02:00
2020-02-24 08:36:35 +01:00
2020-02-01 09:34:49 +00:00
2019-09-21 10:26:24 -07:00
2020-02-24 08:36:47 +01:00
2020-02-11 04:35:55 -08:00
2019-05-30 11:26:32 -07:00
2019-01-28 11:16:04 +01:00
2018-06-03 17:37:15 -07:00
2019-06-19 17:09:55 +02:00
2020-03-05 16:43:36 +01:00
2019-09-19 16:24:24 -07:00
2019-09-04 14:57:28 +05:30
2019-07-04 17:35:11 +01:00
2019-06-05 17:37:09 +02:00
2019-10-30 12:04:35 -04:00
2020-02-28 17:22:16 +01:00
2019-08-10 15:25:47 -07:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:05 +02:00
2020-04-13 10:48:08 +02:00
2018-11-07 22:58:29 +01:00
2018-06-02 19:29:27 -05:00
2020-01-09 10:19:59 +01:00
2018-05-26 09:16:44 +02:00
2019-08-20 22:09:52 +02:00
2019-05-06 11:55:39 +02:00
2019-08-09 17:30:40 +02:00
2019-05-24 17:39:02 +02:00
2019-05-30 11:29:55 -07:00
2019-06-19 17:09:07 +02:00
2019-07-22 09:36:18 -07:00
2019-02-11 11:07:49 +01:00
2019-05-30 11:26:35 -07:00
2019-06-05 17:36:37 +02:00
2019-05-09 00:41:00 -05:00
2018-07-30 08:49:02 -04:00
2019-05-24 17:27:11 +02:00
2019-05-24 17:27:11 +02:00
2019-05-24 17:27:11 +02:00
2019-05-24 17:27:11 +02:00
2019-05-24 17:27:11 +02:00
2019-06-05 17:37:06 +02:00
2019-06-05 17:37:17 +02:00
2019-02-08 06:42:53 -07:00
2019-05-21 11:28:46 +02:00
2019-03-15 11:25:48 -07:00
2018-06-17 08:27:01 +09:00
2019-05-30 11:26:32 -07:00
2019-02-13 08:07:31 +01:00
2018-11-01 11:00:46 +01:00
2019-06-05 17:37:17 +02:00
2019-08-30 21:29:32 -04:00
2019-05-24 17:37:52 +02:00
2019-05-24 17:37:52 +02:00
2019-08-27 09:22:38 -06:00
2020-02-11 04:35:11 -08:00
2019-09-02 15:55:03 +01:00
2019-05-24 20:19:17 +02:00
2019-06-05 17:37:07 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-14 19:52:50 -07:00
2020-01-09 10:19:54 +01:00
2019-05-30 11:26:41 -07:00
2019-10-14 15:04:01 -07:00
2019-10-01 15:45:03 +02:00
2019-04-05 16:02:30 -10:00
2019-07-16 19:23:22 -07:00
2019-08-28 21:17:12 -06:00
2019-08-28 21:17:04 -06:00
2018-11-07 13:44:59 -07:00
2019-04-30 16:12:02 -06:00
2018-11-07 13:44:59 -07:00
2019-09-05 19:52:34 -06:00
2018-09-26 15:11:28 -06:00
2020-03-05 16:43:52 +01:00
2020-03-05 16:43:52 +01:00
2019-05-24 17:36:45 +02:00
2018-06-26 11:28:38 +02:00
2019-07-29 13:50:48 -07:00
2019-08-28 00:30:11 +02:00
2019-06-27 15:25:16 -07:00
2019-10-31 21:41:33 +01:00
2019-01-11 18:05:41 -08:00
2019-03-26 11:24:47 -07:00
2019-04-30 16:11:59 -06:00
2018-05-29 13:00:25 -06:00
2019-04-09 17:05:46 -07:00
2020-04-23 10:36:15 +02:00
2019-09-05 10:15:16 +02:00
2019-03-07 18:31:59 -08:00
2018-07-18 01:18:05 +09:00
2019-07-30 14:21:32 -07:00
2019-06-19 17:09:55 +02:00
2019-06-04 13:42:54 +01:00
2019-03-07 12:20:11 -08:00
2019-06-19 17:09:55 +02:00
2019-08-09 09:17:05 -07:00
2018-08-02 15:22:13 -06:00
2019-06-19 17:09:08 +02:00
2019-07-15 11:03:02 -03:00
2020-03-18 07:17:48 +01:00
2018-06-15 18:10:01 -03:00
2019-09-19 15:31:27 -07:00
2019-09-20 15:45:07 -07:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:36:37 +02:00
2018-10-25 11:14:36 -07:00
2018-08-17 16:20:32 -07:00
2019-06-19 17:09:55 +02:00
2019-07-16 19:23:23 -07:00
2019-09-24 15:54:10 -07:00
2019-11-29 10:10:08 +01:00
2019-10-11 09:26:05 -07:00
2019-09-21 09:47:19 -07:00
2019-01-09 11:36:41 +01:00
2019-07-18 21:01:06 +02:00
2019-01-09 11:36:41 +01:00
2020-04-23 10:36:37 +02:00
2019-02-19 13:20:35 +01:00
2019-05-30 11:25:18 -07:00
2019-07-21 13:31:14 -07:00
2019-06-12 20:27:13 +02:00
2019-05-18 15:52:26 -07:00
2019-09-04 13:38:26 +02:00
2018-11-29 17:30:48 +02:00
2018-10-03 16:47:43 +02:00
2019-04-25 22:00:16 +02:00
2019-06-20 07:56:13 +02:00
2019-05-24 17:27:11 +02:00
2019-04-25 21:33:37 +02:00
2019-04-25 21:33:37 +02:00
2019-06-05 17:37:06 +02:00
2019-05-30 11:26:39 -07:00
2019-06-05 17:36:37 +02:00
2019-06-19 17:09:55 +02:00
2020-04-17 10:50:11 +02:00
2019-06-19 17:09:55 +02:00
2020-02-11 04:35:25 -08:00
2020-02-24 08:36:34 +01:00
2019-09-03 09:36:36 +02:00
2019-09-17 19:15:14 -07:00
2019-09-25 17:51:40 -07:00
2019-07-25 15:55:04 +02:00
2018-08-22 10:52:46 -07:00
2019-08-09 22:52:10 +10:00
2019-06-19 17:09:06 +02:00
2018-07-27 19:04:33 +08:00
2018-08-22 10:52:48 -07:00
2019-06-19 17:09:06 +02:00
2018-09-04 11:37:05 +08:00
2019-09-23 11:21:04 -07:00
2019-07-08 20:57:08 -07:00
2019-05-30 11:29:53 -07:00
2018-10-08 22:53:10 +11:00
2019-01-10 13:58:00 +05:30
2019-07-05 15:19:10 -07:00
2019-05-24 17:27:11 +02:00
2019-07-31 13:31:05 -06:00
2018-10-19 07:53:18 +02:00
2019-06-03 16:34:27 +02:00
2019-03-07 18:32:01 -08:00
2019-05-30 11:26:37 -07:00
2019-06-05 17:37:05 +02:00
2020-04-17 10:50:09 +02:00
2019-08-25 12:44:38 +09:00
2019-06-19 17:09:55 +02:00
2019-07-18 14:49:33 -07:00
2019-09-18 10:33:46 -07:00
2019-05-24 17:37:52 +02:00
2019-06-05 17:37:17 +02:00
2019-07-25 11:34:39 -07:00
2019-05-30 11:29:21 -07:00
2019-05-30 11:29:21 -07:00
2019-06-19 17:09:55 +02:00
2018-07-31 17:33:21 -04:00
2019-08-13 09:09:30 +02:00
2019-08-21 07:14:10 +09:00
2019-06-05 17:37:06 +02:00
2020-01-04 19:17:24 +01:00
2018-07-31 18:04:55 -05:00
2019-05-30 11:26:41 -07:00
2019-05-30 11:26:41 -07:00
2019-08-17 18:46:33 +01:00
2019-06-24 10:23:16 +02:00
2020-01-04 19:17:00 +01:00
2019-08-29 16:43:22 +02:00
2019-08-16 12:40:58 +01:00
2020-02-24 08:36:40 +01:00
2020-04-01 11:01:53 +02:00
2019-03-29 07:35:00 +01:00
2019-06-27 23:02:12 +01:00
2019-05-24 17:37:53 +02:00
2019-06-19 17:09:55 +02:00
2019-10-22 12:54:44 -07:00
2019-09-03 19:21:19 +02:00
2019-06-05 17:36:37 +02:00
2019-05-30 11:26:35 -07:00
2019-10-31 09:40:19 +01:00
2019-09-05 19:52:33 -06:00
2019-05-30 11:26:32 -07:00
2018-08-27 14:48:48 +02:00
2019-05-30 11:29:19 -07:00
2019-06-24 19:23:39 +02:00
2019-02-28 03:28:53 -05:00
2019-08-07 13:52:43 +01:00
2019-05-30 11:26:32 -07:00
2019-05-25 16:33:36 -07:00
2020-02-11 04:35:37 -08:00
2019-05-30 11:26:32 -07:00
2019-10-18 15:32:52 +02:00
2019-07-31 13:31:05 -06:00
2019-08-21 22:23:48 +10:00
2019-06-05 17:36:37 +02:00
2019-06-05 17:36:37 +02:00
2020-04-23 10:36:33 +02:00
2019-02-07 16:47:32 +01:00
2019-06-14 14:21:07 -06:00
2019-08-05 21:52:53 +02:00
2019-06-12 20:30:39 +02:00
2019-05-30 11:26:32 -07:00
2019-02-19 10:10:05 +01:00
2019-05-30 11:26:32 -07:00
2018-12-19 09:40:13 +01:00
2019-06-19 17:09:55 +02:00
2019-02-28 08:24:23 -07:00
2019-10-22 11:26:09 -07:00
2019-07-26 14:51:57 +10:00
2019-06-05 17:36:37 +02:00
2019-05-30 11:26:35 -07:00
2019-06-24 09:16:47 +10:00
2018-12-19 10:42:08 +01:00
2019-03-05 21:07:18 -08:00
2019-09-25 09:55:59 -07:00
2019-05-24 17:27:11 +02:00
2019-07-16 22:52:37 -04:00
2019-01-21 17:48:13 +01:00
2020-03-25 08:25:58 +01:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-08-12 19:18:50 -07:00
2018-12-02 16:25:28 -08:00
2019-06-19 17:09:11 +02:00
2019-05-30 11:26:41 -07:00
2019-07-03 18:52:20 +02:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:32 -07:00
2019-05-24 17:27:12 +02:00
2019-08-19 11:00:39 -04:00
2019-06-20 14:47:54 +02:00
2019-08-12 19:33:50 -07:00
2019-05-25 23:04:42 -04:00
2020-03-25 08:25:58 +01:00
2019-08-26 11:40:24 +02:00
2019-06-19 17:09:55 +02:00
2019-07-12 15:13:55 -07:00
2019-06-01 15:51:32 -07:00
2019-04-22 09:48:12 -06:00
2019-03-22 10:38:23 -04:00
2018-12-20 09:51:31 -07:00
2019-10-28 16:17:31 -07:00
2019-02-15 16:54:38 +01:00
2018-08-02 10:24:51 +02:00
2018-07-18 17:27:10 +00:00
2019-09-05 11:40:54 +02:00
2019-08-27 19:02:59 +02:00
2019-02-06 10:05:16 +00:00
2019-05-30 11:29:53 -07:00
2019-06-04 14:03:53 +02:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:32 -07:00
2019-06-05 17:37:06 +02:00
2019-06-05 17:37:06 +02:00
2020-03-05 16:43:42 +01:00
2019-05-30 11:26:35 -07:00
2019-06-05 17:36:38 +02:00
2018-12-28 12:11:47 -08:00
2019-05-30 11:26:32 -07:00
2019-08-20 09:35:02 -03:00
2019-06-25 12:59:43 +10:00
2019-06-22 21:21:04 +02:00
2020-01-04 19:18:41 +01:00
2019-09-29 10:33:41 -07:00
2020-04-23 10:36:36 +02:00
2019-07-15 11:03:02 -03:00
2019-05-24 17:36:45 +02:00
2019-05-24 17:36:45 +02:00
2019-10-02 06:36:50 -07:00
2019-06-29 21:08:14 -07:00
2019-09-24 12:36:31 -07:00
2019-04-16 13:08:16 +02:00
2019-05-21 11:28:39 +02:00
2019-05-21 11:28:39 +02:00
2019-05-21 11:28:39 +02:00
2019-05-21 11:28:39 +02:00
2019-09-24 16:48:02 -07:00
2019-06-19 17:09:55 +02:00
2018-11-04 11:04:46 +01:00
2019-05-30 11:26:32 -07:00
2019-07-09 14:52:14 -07:00
2019-09-03 11:33:29 +02:00
2019-11-08 08:46:49 -08:00
2020-04-01 11:02:09 +02:00
2019-05-30 11:26:41 -07:00
2019-05-30 11:26:32 -07:00
2019-07-05 21:34:50 +02:00
2020-01-12 12:21:46 +01:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-10-24 14:53:49 -07:00
2019-05-30 11:26:32 -07:00
2019-07-30 14:42:13 -07:00
2019-07-26 14:20:06 -07:00
2019-07-08 19:25:19 -07:00
2019-10-24 14:53:48 -07:00
2019-05-30 11:26:37 -07:00
2019-10-24 14:53:49 -07:00
2019-06-07 11:00:14 -07:00
2019-01-22 10:23:17 +01:00
2019-09-28 08:14:15 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-06-26 13:19:46 -07:00
2018-12-17 09:19:49 -08:00
2020-03-18 07:17:38 +01:00
2019-05-30 11:26:32 -07:00
2019-06-02 18:08:36 -07:00
2019-08-28 11:50:33 +02:00
2019-07-04 22:01:59 -04:00
2019-01-14 11:42:18 +01:00
2018-06-27 19:21:25 +02:00
2019-06-19 17:09:55 +02:00
2019-08-20 12:04:07 -07:00
2019-06-05 17:37:17 +02:00
2019-07-15 11:42:31 +02:00
2019-07-25 13:03:18 +02:00
2020-04-01 11:01:55 +02:00
2019-06-26 14:08:11 +02:00
2019-05-30 11:26:41 -07:00
2020-02-28 17:22:26 +01:00
2019-08-13 23:02:48 +03:00
2019-08-13 23:02:44 +03:00
2019-09-17 19:15:14 -07:00
2019-09-25 17:51:39 -07:00
2019-01-22 13:39:59 +01:00
2019-01-22 13:39:59 +01:00
2019-06-19 17:09:56 +02:00
2019-08-30 16:12:10 +02:00
2019-07-16 19:23:22 -07:00
2020-04-17 10:50:04 +02:00
2019-09-19 15:32:45 -07:00
2019-08-23 10:09:58 +02:00
2019-06-14 14:31:48 -06:00
2019-08-20 09:39:41 -03:00
2018-11-19 19:03:46 -07:00
2019-07-23 09:51:00 +02:00
2019-05-30 11:26:32 -07:00
2019-06-05 17:37:17 +02:00
2019-05-14 19:52:52 -07:00
2018-06-22 13:43:27 +09:00
2019-12-31 16:44:14 +01:00
2018-09-18 16:15:33 -05:00
2019-05-30 11:26:32 -07:00
2019-03-03 21:05:10 -08:00
2018-12-13 09:35:31 +00:00
2020-02-11 04:35:54 -08:00
2019-06-19 17:09:55 +02:00
2018-12-18 14:22:28 +01:00
2019-02-23 10:53:31 +01:00
2020-02-28 17:22:20 +01:00
2018-08-10 15:11:25 -04:00
2019-05-24 17:36:45 +02:00
2019-06-05 17:36:37 +02:00
2019-06-05 17:36:37 +02:00
2019-07-08 14:01:43 +02:00
2019-12-13 08:42:53 +01:00
2019-06-10 13:00:24 +02:00
2019-04-08 22:56:14 +02:00
2019-05-30 11:26:35 -07:00
2019-06-14 19:31:47 -07:00
2019-06-17 12:09:22 +02:00
2019-05-30 11:26:32 -07:00
2019-07-12 11:05:42 -07:00
2019-07-12 11:05:42 -07:00
2019-03-28 10:58:28 +01:00
2018-06-15 07:55:24 +09:00
2019-03-04 13:42:05 +01:00
2019-09-07 04:28:05 -03:00
2019-12-13 08:42:53 +01:00
2019-09-28 08:14:15 -07:00
2020-04-23 10:36:45 +02:00
2019-09-02 11:43:54 +01:00
2019-05-24 17:27:11 +02:00
2019-05-24 17:36:45 +02:00
2019-09-25 17:51:40 -07:00
2019-09-24 15:54:11 -07:00
2019-06-19 17:09:08 +02:00
2019-06-05 17:37:06 +02:00
2019-05-24 17:36:45 +02:00
2019-04-25 22:06:10 +02:00
2019-07-16 19:23:22 -07:00
2019-06-05 17:37:16 +02:00
2019-05-30 11:29:19 -07:00
2019-05-30 11:29:19 -07:00
2019-03-05 21:07:15 -08:00
2019-05-14 19:52:48 -07:00
2018-07-12 21:35:28 +02:00
2020-02-11 04:35:54 -08:00
2019-06-19 17:09:07 +02:00
2020-02-11 04:35:40 -08:00
2018-11-22 09:03:17 +01:00
2019-05-14 19:52:49 -07:00
2019-08-05 21:52:53 +02:00
2019-07-25 20:07:50 +02:00
2019-05-30 11:29:22 -07:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:17 +02:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:07 +02:00
2019-05-24 22:40:45 +02:00
2019-10-08 22:05:58 +02:00
2020-02-28 17:22:28 +01:00
2020-01-04 19:18:28 +01:00
2019-05-24 17:39:02 +02:00
2019-08-29 13:49:13 -07:00
2019-06-19 17:09:55 +02:00
2019-08-06 08:20:10 -06:00
2019-03-07 18:31:59 -08:00
2018-11-30 13:29:04 +00:00
2018-12-05 16:26:16 -08:00
2019-04-18 16:18:27 -04:00
2019-06-01 15:51:31 -07:00
2020-02-24 08:36:45 +01:00
2019-05-14 19:52:49 -07:00
2019-06-29 01:31:08 +02:00
2019-07-11 15:30:05 -07:00
2019-06-05 17:37:06 +02:00
2019-07-25 15:43:27 +02:00
2019-06-24 19:23:44 +02:00
2019-08-13 14:54:24 +08:00
2019-05-24 17:37:53 +02:00
2019-09-28 08:14:15 -07:00
2019-07-16 19:23:24 -07:00
2019-03-07 18:32:03 -08:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-04-23 10:40:32 -07:00
2019-04-02 09:50:48 +02:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:17 +02:00
2019-06-19 17:09:55 +02:00
2019-09-05 12:32:05 +02:00
2019-03-28 02:07:54 +09:00
2019-08-09 22:52:10 +10:00
2019-05-30 11:26:32 -07:00
2020-04-01 11:02:03 +02:00
2018-06-07 17:34:35 -07:00
2020-01-09 10:19:56 +01:00
2019-11-15 18:34:00 -08:00
2019-09-28 14:05:38 -07:00
2019-09-29 10:33:41 -07:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:36:38 +02:00
2019-10-17 16:31:52 -07:00
2019-05-21 11:28:45 +02:00
2019-08-20 09:35:03 -03:00
2019-10-04 18:11:08 -07:00
2019-12-13 08:43:18 +01:00
2019-05-30 11:26:41 -07:00
2019-05-14 09:47:46 -07:00
2019-09-25 17:51:40 -07:00
2019-11-06 08:28:58 -08:00
2019-06-19 17:09:55 +02:00
2020-03-12 13:00:19 +01:00
2019-09-07 04:28:04 -03:00
2020-01-23 08:22:39 +01:00
2019-12-31 16:41:16 +01:00
2019-08-06 13:41:04 -04:00
2019-09-27 19:37:27 -07:00
2019-06-24 14:00:32 +02:00
2019-05-07 21:50:24 +09:00
2019-04-04 21:04:13 -04:00
2019-08-14 15:30:35 +02:00
2019-05-24 17:27:10 +02:00
2018-10-16 00:13:39 -07:00
2019-06-13 08:59:34 -04:00
2019-08-08 09:09:25 +02:00
2019-05-30 11:26:32 -07:00
2019-07-03 19:28:40 +02:00
2019-05-30 11:26:35 -07:00
2019-09-03 09:30:45 -04:00
2019-06-05 17:36:38 +02:00
2018-10-17 13:56:58 -07:00
2019-07-08 19:25:19 -07:00
2019-05-30 11:26:32 -07:00
2020-03-05 16:43:35 +01:00
2019-09-13 12:35:33 +02:00
2019-01-06 09:46:51 +09:00
2019-01-28 11:32:58 +01:00
2019-09-13 12:35:33 +02:00
2019-09-13 12:47:36 +02:00
2019-07-01 19:12:10 -07:00
2018-10-19 17:01:43 -07:00
2019-07-18 15:50:28 -04:00
2019-07-06 14:54:50 -04:00
2019-09-20 15:15:24 -04:00
2019-04-25 14:18:15 -04:00
2019-03-01 16:20:16 -05:00
2019-05-30 11:26:41 -07:00
2018-11-06 21:58:00 +01:00
2019-07-18 17:08:06 -07:00
2019-03-05 21:07:20 -08:00
2018-11-03 10:09:37 -07:00
2019-06-13 09:02:33 -04:00
2020-04-17 10:50:10 +02:00
2019-02-20 07:22:17 -07:00
2019-04-25 16:51:42 +02:00
2019-02-20 07:22:10 -07:00
2019-12-31 16:44:40 +01:00
2019-12-31 16:44:43 +01:00
2018-12-06 15:45:46 +01:00
2019-01-22 10:21:45 +01:00
2019-02-08 15:02:49 -08:00
2018-09-08 11:19:28 +02:00
2019-05-24 16:39:14 -05:00
2019-09-11 14:46:02 +01:00
2018-07-10 17:22:35 +02:00
2019-06-05 17:37:16 +02:00
2019-06-05 17:37:16 +02:00
2018-09-25 09:47:52 +02:00
2018-11-09 15:40:53 -06:00
2019-02-28 11:40:49 -06:00
2019-07-26 17:01:29 -06:00
2019-05-24 17:27:11 +02:00
2019-05-20 17:27:08 +03:00
2019-07-22 20:56:37 +05:30
2019-05-30 11:26:32 -07:00
2019-08-09 19:56:05 +02:00
2019-07-10 23:08:44 -05:00
2019-05-30 11:26:35 -07:00
2019-07-12 11:05:47 -07:00
2019-06-05 17:30:29 +02:00
2019-05-16 10:29:00 -07:00
2019-05-03 10:49:17 -04:00
2020-02-11 04:35:28 -08:00
2018-06-07 17:34:36 -07:00
2019-10-14 15:04:00 -07:00
2019-08-03 07:02:01 -07:00
2020-03-25 08:25:58 +01:00
2019-07-12 11:05:43 -07:00
2019-05-30 11:26:39 -07:00
2019-09-24 15:54:08 -07:00
2018-10-21 10:46:39 -04:00
2019-09-07 04:28:04 -03:00
2019-03-25 14:49:00 -07:00
2019-05-30 11:29:19 -07:00
2019-08-28 15:25:53 -05:00
2019-09-23 19:16:01 -07:00
2019-06-21 18:11:53 -05:00
2019-02-28 11:09:29 +01:00
2019-01-08 07:58:37 -05:00
2019-04-25 16:33:07 -05:00
2020-04-17 10:50:11 +02:00
2019-04-15 13:24:02 +01:00
2019-08-16 08:41:26 -05:00
2020-02-24 08:36:37 +01:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:07 +02:00
2020-04-23 10:36:37 +02:00
2020-02-11 04:35:44 -08:00
2019-05-09 10:51:06 -07:00
2019-07-08 16:12:03 -07:00
2019-07-04 08:05:52 -07:00
2019-10-28 11:02:01 +01:00
2019-06-24 19:19:23 +02:00
2019-07-16 19:23:25 -07:00
2019-06-05 17:37:07 +02:00
2019-09-05 11:54:14 +02:00
2019-05-30 11:26:37 -07:00
2020-03-18 07:17:46 +01:00
2019-07-08 19:48:57 -07:00
2019-08-01 21:49:46 +02:00
2019-04-26 11:09:55 -07:00
2018-05-30 15:33:32 -06:00
2019-05-30 11:29:52 -07:00
2018-12-13 16:07:04 +01:00
2020-03-18 07:17:56 +01:00
2019-05-21 11:28:45 +02:00
2019-06-05 17:37:07 +02:00
2019-06-05 17:37:16 +02:00
2019-08-05 10:58:19 +02:00
2019-07-26 13:24:59 +05:30
2019-12-21 11:04:31 +01:00
2019-06-05 17:37:16 +02:00
2019-08-21 00:20:40 +02:00
2019-07-23 09:46:56 +02:00
2019-05-24 17:36:45 +02:00
2018-10-08 22:53:10 +11:00
2019-07-16 19:23:22 -07:00
2019-05-14 19:52:48 -07:00
2020-01-04 19:18:48 +01:00
2019-09-05 21:16:22 +02:00
2019-07-15 21:06:15 -07:00
2019-06-05 17:37:04 +02:00
2019-05-30 11:26:32 -07:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-05-24 17:36:45 +02:00
2019-05-24 17:36:45 +02:00
2019-07-31 19:03:34 +02:00
2019-09-25 17:51:39 -07:00
2019-06-12 11:42:13 +02:00
2019-06-15 12:25:49 +02:00
2019-08-26 11:35:13 +02:00
2019-08-09 17:51:39 +01:00
2019-05-25 18:00:04 -04:00
2019-05-14 19:52:48 -07:00
2019-05-14 19:52:48 -07:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:36:37 +02:00
2019-06-05 17:37:06 +02:00
2018-07-20 01:11:45 +02:00
2019-05-24 17:36:45 +02:00
2019-06-13 22:34:55 -07:00
2019-05-30 11:26:32 -07:00
2019-05-29 09:31:44 -05:00
2019-09-21 03:25:10 +02:00
2019-06-19 17:09:55 +02:00
2019-07-22 16:25:20 -07:00
2019-05-14 19:52:48 -07:00
2020-01-04 19:17:25 +01:00
2019-12-17 19:56:43 +01:00
2019-11-01 22:26:34 -04:00
2019-06-05 17:37:17 +02:00
2019-09-12 21:05:34 -04:00
2019-08-23 16:39:26 +01:00
2019-09-25 17:51:39 -07:00
2019-07-16 19:23:22 -07:00
2019-02-09 08:44:32 -08:00
2019-08-13 14:35:49 -07:00
2019-08-09 11:01:08 -07:00
2020-02-24 08:36:45 +01:00
2019-08-09 11:00:35 -07:00
2018-11-08 21:43:20 -08:00
2019-09-16 17:25:49 -07:00
2019-08-26 16:27:01 -07:00
2019-07-31 19:03:35 +02:00
2019-09-25 17:42:29 +02:00
2019-05-14 19:52:51 -07:00
2018-07-07 01:45:31 +02:00
2018-07-17 09:27:43 +02:00
2019-07-09 12:34:26 -07:00
2019-05-30 11:29:21 -07:00
2019-03-07 18:32:03 -08:00
2019-06-29 12:02:17 -07:00
2019-10-28 12:18:23 +01:00
2019-10-24 10:26:33 +02:00
2019-06-05 17:36:37 +02:00
2018-08-27 14:48:48 +02:00
2018-06-15 13:37:07 +02:00
2019-04-07 19:12:12 -07:00
2019-05-29 13:27:08 -07:00
2019-03-13 09:46:10 -04:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:17 +02:00
2019-09-16 11:43:38 -05:00
2018-06-03 17:37:11 -07:00
2019-05-08 22:14:36 +02:00
2018-07-25 11:22:19 +02:00
2018-09-25 20:17:35 -07:00
2019-05-21 11:28:46 +02:00
2019-05-21 11:28:46 +02:00
2019-06-19 17:09:07 +02:00
2019-08-06 12:49:15 +02:00
2019-06-05 17:37:06 +02:00
2019-06-20 15:21:33 -04:00
2019-06-19 17:09:55 +02:00
2020-04-17 10:50:12 +02:00
2019-08-12 12:23:02 +01:00
2019-05-30 11:29:52 -07:00
2019-05-24 17:39:00 +02:00
2019-05-30 11:26:32 -07:00
2018-12-11 16:28:41 -08:00
2019-10-31 09:40:21 +01:00
2019-06-29 10:33:57 -06:00
2020-04-02 15:11:00 +02:00
2019-06-05 17:37:17 +02:00
2019-07-03 17:52:50 -04:00
2019-05-30 11:26:41 -07:00
2019-06-05 17:36:37 +02:00
2019-06-21 10:18:43 +02:00
2019-07-15 11:03:03 -03:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:35 -07:00
2018-10-02 14:38:02 -07:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-05-31 12:37:46 -07:00
2019-06-19 17:09:55 +02:00
2018-11-11 14:44:53 +05:30
2019-09-12 21:05:34 -04:00
2019-09-24 15:54:11 -07:00
2018-10-03 16:50:39 +02:00
2019-08-19 06:34:13 -05:00
2019-07-09 09:07:00 -07:00
2019-03-27 14:29:26 -07:00
2019-07-09 11:35:38 -07:00
2019-05-30 11:26:32 -07:00
2020-04-01 11:02:18 +02:00
2020-01-23 08:22:45 +01:00
2019-05-16 15:51:55 -07:00
2019-10-07 15:47:20 -07:00
2018-07-07 17:25:23 +02:00
2019-03-05 21:07:14 -08:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:29:19 -07:00
2019-07-08 16:12:03 -07:00
2019-04-24 12:17:08 +02:00
2019-05-30 11:26:35 -07:00
2019-10-31 14:01:40 -07:00
2019-05-24 17:36:45 +02:00
2019-08-19 13:14:53 -03:00
2019-07-31 19:03:35 +02:00
2019-07-31 19:03:35 +02:00
2019-06-05 17:36:37 +02:00
2019-03-26 14:39:24 -07:00
2019-02-09 08:45:59 -08:00
2019-05-28 09:03:35 -07:00
2019-06-05 17:36:37 +02:00
2019-05-30 11:26:37 -07:00
2018-09-04 10:35:48 -07:00
2018-06-14 12:21:18 +09:00
2019-07-25 15:43:26 +02:00
2018-10-09 11:20:55 +02:00
2018-06-05 16:57:31 -07:00
2019-02-07 16:38:35 +01:00
2019-09-11 15:27:09 +01:00
2019-06-05 17:37:16 +02:00
2019-05-30 11:26:32 -07:00
2019-06-15 12:25:55 +02:00
2019-07-03 17:52:50 -04:00
2019-10-08 13:27:05 +02:00
2020-02-19 19:52:56 +01:00
2020-04-13 10:48:07 +02:00
2018-06-20 11:35:56 +02:00
2019-09-25 17:51:41 -07:00
2018-06-20 19:10:01 +02:00
2020-04-23 10:36:37 +02:00
2019-09-11 12:34:29 +02:00
2019-06-05 17:36:37 +02:00
2019-06-19 17:09:55 +02:00
2019-08-05 14:56:30 -07:00
2019-09-07 21:42:25 +02:00
2019-06-05 17:37:16 +02:00
2019-07-18 17:08:07 -07:00
2019-10-02 10:06:45 +02:00
2019-05-21 11:28:46 +02:00
2019-09-17 20:03:49 -06:00
2019-06-05 17:37:06 +02:00
2018-10-11 09:16:44 -07:00
2019-06-19 17:09:55 +02:00
2019-10-13 10:13:08 -07:00
2019-06-05 17:36:37 +02:00
2019-05-30 11:26:32 -07:00
2019-07-31 13:25:15 -06:00
2020-01-04 19:18:42 +01:00
2019-08-26 12:15:06 +03:00
2019-06-05 17:37:06 +02:00
2019-04-09 08:31:51 -07:00
2019-05-06 19:40:31 -07:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:29:19 -07:00
2019-05-30 11:29:19 -07:00
2019-02-07 00:13:27 +01:00
2019-08-30 07:27:17 -07:00
2019-12-18 16:08:43 +01:00
2019-05-30 11:26:37 -07:00
2019-08-23 02:12:11 +02:00
2018-12-18 16:13:05 +01:00
2019-06-25 08:54:51 +02:00
2019-08-01 20:51:22 +02:00
2019-08-02 14:45:14 +10:00
2019-08-28 11:50:43 +02:00
2019-02-07 00:13:28 +01:00
2020-01-23 08:22:44 +01:00
2019-09-16 17:25:49 -07:00
2019-07-31 19:03:35 +02:00
2019-05-24 17:39:02 +02:00
2019-10-07 15:24:36 +02:00
2019-06-05 17:37:17 +02:00
2019-08-31 06:51:49 -04:00
2019-06-19 17:09:55 +02:00
2019-07-16 19:23:24 -07:00
2019-04-26 19:04:19 -07:00
2019-06-05 17:37:09 +02:00
2019-06-05 17:37:17 +02:00
2018-09-14 11:19:30 -04:00
2018-10-13 00:50:53 -04:00
2020-02-28 17:22:19 +01:00
2019-06-03 12:32:57 +02:00
2020-01-17 19:48:40 +01:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:26:32 -07:00
2019-06-05 17:37:04 +02:00
2019-07-13 10:36:53 -07:00
2019-01-11 18:05:40 -08:00
2019-06-19 23:45:09 -04:00
2019-05-30 11:26:35 -07:00
2019-08-21 10:03:35 -07:00
2019-06-26 21:02:32 +01:00
2019-05-14 09:47:45 -07:00
2019-05-30 11:26:41 -07:00
2019-03-28 01:55:18 +09:00
2019-08-05 18:40:18 -04:00
2019-08-14 01:10:42 +09:00
2019-05-30 11:26:41 -07:00
2019-06-19 17:09:55 +02:00
2018-09-13 17:58:30 +02:00
2019-03-07 10:34:37 +01:00
2019-05-24 17:27:13 +02:00
2019-05-24 17:27:13 +02:00
2019-06-05 17:30:27 +02:00
2019-03-06 11:19:57 -05:00
2019-02-24 12:06:19 -08:00
2019-04-08 17:05:52 -04:00
2019-10-28 04:25:04 -04:00
2019-05-12 13:11:36 -04:00
2019-05-24 17:39:00 +02:00
2018-09-13 15:18:04 -10:00
2019-06-05 17:37:05 +02:00
2018-09-13 15:18:04 -10:00
2020-03-25 08:25:58 +01:00
2019-07-12 11:05:43 -07:00
2019-05-14 09:47:45 -07:00
2019-06-05 17:37:05 +02:00
2019-06-21 16:04:05 +02:00
2019-05-30 11:26:35 -07:00
2020-04-02 15:11:00 +02:00
2019-06-19 17:09:55 +02:00
2019-09-04 14:34:31 +02:00
2019-05-15 17:35:54 +01:00
2019-09-17 12:35:15 -07:00
2018-12-22 12:15:29 +01:00
2018-07-04 20:19:06 -07:00
2019-06-05 17:37:07 +02:00
2019-07-14 16:51:47 -07:00
2019-09-13 21:15:39 +10:00
2019-08-27 09:22:38 -06:00
2018-07-03 09:44:36 +02:00
2020-04-17 10:50:18 +02:00
2018-12-28 12:11:46 -08:00
2019-05-24 17:36:47 +02:00
2019-09-24 15:54:12 -07:00