Gleb Smirnoff
8d40bada3e
Fix a degenerate case when soisdisconnected() would call soisconnected().
...
This happens when closing a socket with upcall, and trace is: soclose()->
... protocol ... -> soisdisconnected() -> socantrcvmore_locked() ->
sowakeup() -> soisconnected().
Right now this case is innocent for two reasons. First, soisconnected()
doesn't clear SS_ISDISCONNECTED flag. Second, the mutex to lock the
socket is the socket receive buffer mutex, and sodisconnected() first
disables the receive buffer. But in future code, the mutex to lock
socket is different to buffer mutex, and we would get undesired mutex
recursion.
The fix is to check SS_ISDISCONNECTED flag before calling upcall.
2017-06-08 06:16:47 +00:00
..
2017-01-15 17:54:01 +00:00
2017-05-24 00:58:30 +00:00
2016-05-18 04:35:58 +00:00
2017-04-13 15:43:44 +00:00
2016-01-09 20:18:53 +00:00
2017-03-21 18:02:14 +00:00
2017-03-30 18:21:36 +00:00
2017-05-17 00:34:34 +00:00
2017-02-07 17:03:22 +00:00
2017-05-24 01:01:57 +00:00
2017-05-23 09:29:05 +00:00
2016-03-11 23:18:06 +00:00
2017-05-17 00:34:34 +00:00
2017-02-24 16:11:55 +00:00
2017-02-17 06:45:04 +00:00
2016-12-12 19:11:04 +00:00
2016-09-15 13:16:20 +00:00
2016-05-14 18:22:52 +00:00
2017-05-24 00:58:30 +00:00
2016-11-08 23:59:41 +00:00
2017-06-05 11:40:30 +00:00
2016-12-10 16:20:39 +00:00
2016-04-15 03:09:55 +00:00
2016-12-14 12:56:58 +00:00
2017-03-14 09:25:01 +00:00
2017-05-17 00:34:34 +00:00
2017-03-12 13:58:51 +00:00
2017-05-18 18:24:11 +00:00
2016-04-19 23:48:27 +00:00
2017-04-17 17:34:47 +00:00
2016-06-21 13:48:49 +00:00
2017-05-03 18:41:08 +00:00
2017-06-06 02:15:00 +00:00
2016-08-10 13:47:12 +00:00
2016-01-31 17:32:20 +00:00
2017-03-12 13:48:24 +00:00
2017-03-09 00:56:07 +00:00
2017-02-12 09:49:44 +00:00
2017-01-30 15:20:13 +00:00
2017-02-17 14:55:59 +00:00
2015-11-15 12:10:51 +00:00
2016-09-15 13:16:20 +00:00
2016-05-18 04:35:58 +00:00
2017-04-17 17:07:00 +00:00
2015-10-10 09:21:55 +00:00
2016-04-29 22:15:33 +00:00
2017-05-30 02:25:47 +00:00
2017-01-25 20:22:32 +00:00
2017-04-17 16:51:04 +00:00
2016-04-26 19:57:35 +00:00
2016-04-07 04:23:25 +00:00
2017-02-24 01:39:12 +00:00
2017-06-03 14:12:17 +00:00
2016-12-14 22:49:20 +00:00
2017-05-23 16:59:24 +00:00
2017-02-14 13:54:05 +00:00
2016-04-29 22:15:33 +00:00
2017-05-17 00:34:34 +00:00
2017-04-09 02:00:03 +00:00
2017-03-01 05:06:21 +00:00
2017-06-03 16:19:33 +00:00
2015-11-23 07:09:35 +00:00
2017-03-06 22:32:56 +00:00
2017-05-17 00:34:34 +00:00
2017-01-22 19:41:42 +00:00
2017-03-01 05:06:21 +00:00
2017-04-17 17:34:47 +00:00
2017-03-22 05:27:20 +00:00
2017-03-14 22:02:02 +00:00
2017-02-20 15:53:16 +00:00
2017-04-27 21:24:50 +00:00
2017-03-19 00:51:12 +00:00
2017-05-17 00:34:34 +00:00
2017-03-14 19:06:44 +00:00
2017-05-17 00:34:34 +00:00
2017-03-09 00:45:15 +00:00
2016-04-15 16:10:11 +00:00
2016-04-29 22:15:33 +00:00
2015-10-27 22:59:24 +00:00
2016-07-28 21:29:04 +00:00
2017-05-23 09:29:05 +00:00
2016-05-26 19:29:29 +00:00
2016-05-26 19:29:29 +00:00
2016-05-16 09:11:40 +00:00
2016-08-19 10:52:39 +00:00
2016-04-27 00:10:32 +00:00
2017-05-17 00:34:34 +00:00
2017-03-23 08:57:04 +00:00
2016-09-15 13:16:20 +00:00
2017-06-07 16:04:34 +00:00
2016-01-11 20:38:39 +00:00
2017-01-15 17:54:01 +00:00
2015-10-20 03:25:17 +00:00
2015-12-01 02:48:42 +00:00
2017-01-24 18:05:29 +00:00
2016-12-13 20:11:45 +00:00
2016-05-25 19:44:26 +00:00
2016-05-19 14:08:36 +00:00
2016-11-08 23:59:41 +00:00
2017-05-03 18:41:08 +00:00
2016-09-15 13:16:20 +00:00
2017-04-17 17:34:47 +00:00
2017-05-08 21:08:39 +00:00
2017-02-07 16:01:07 +00:00
2016-09-15 13:16:20 +00:00
2016-04-29 22:15:33 +00:00
2016-09-15 13:16:20 +00:00
2016-04-29 22:15:33 +00:00
2017-06-08 04:02:14 +00:00
2016-09-15 13:16:20 +00:00
2016-04-26 15:38:17 +00:00
2017-02-28 21:27:51 +00:00
2016-09-15 13:16:20 +00:00
2016-05-20 17:57:47 +00:00
2016-09-21 10:15:08 +00:00
2015-10-02 09:23:14 +00:00
2016-09-15 13:16:20 +00:00
2017-02-07 17:31:24 +00:00
2017-05-16 23:31:52 +00:00
2017-03-14 22:02:02 +00:00
2017-04-09 02:00:03 +00:00
2015-11-19 05:56:59 +00:00
2017-04-17 17:34:47 +00:00
2017-03-02 12:20:23 +00:00
2017-03-27 10:48:28 +00:00
2017-04-17 17:34:47 +00:00
2016-10-22 18:02:20 +00:00
2017-02-12 20:54:31 +00:00
2017-01-14 04:16:13 +00:00
2016-05-11 23:16:11 +00:00
2017-02-05 02:27:04 +00:00
2016-10-21 16:12:23 +00:00
2017-03-10 10:09:44 +00:00
2016-06-22 21:18:19 +00:00
2016-07-27 11:08:59 +00:00
2017-03-30 18:21:36 +00:00
2017-05-26 22:17:44 +00:00
2017-05-23 09:30:42 +00:00
2017-05-23 09:29:05 +00:00
2017-05-23 09:30:42 +00:00
2017-05-17 00:34:34 +00:00
2017-03-30 22:26:15 +00:00
2017-03-30 22:26:15 +00:00
2016-09-15 13:16:20 +00:00
2016-09-15 13:16:20 +00:00
2017-01-13 16:37:38 +00:00
2017-01-13 16:37:38 +00:00
2017-05-23 09:29:05 +00:00
2016-01-26 14:46:39 +00:00
2017-05-23 09:29:05 +00:00
2017-06-02 17:49:21 +00:00
2016-03-01 18:12:14 +00:00
2016-09-15 13:16:20 +00:00
2017-01-12 06:38:03 +00:00
2017-03-07 19:00:50 +00:00
2017-03-31 13:43:00 +00:00
2017-03-31 13:43:00 +00:00
2017-03-31 13:43:00 +00:00
2017-06-08 06:16:47 +00:00
2017-06-07 01:48:11 +00:00
2017-01-30 12:57:22 +00:00
2017-06-02 17:39:05 +00:00
2017-03-30 22:00:58 +00:00
2017-02-13 09:04:38 +00:00
2017-04-23 22:20:25 +00:00
2017-05-04 03:11:59 +00:00
2017-01-04 22:27:19 +00:00
2017-06-02 17:31:25 +00:00
2017-05-17 00:34:34 +00:00
2016-05-11 06:32:22 +00:00
2016-09-15 13:16:20 +00:00
2017-03-15 18:23:32 +00:00
2017-05-17 00:34:34 +00:00
2017-02-06 20:44:34 +00:00
2017-06-02 17:31:25 +00:00
2017-06-05 11:40:30 +00:00
2017-05-27 17:00:30 +00:00
2017-06-02 17:31:25 +00:00