Tor Egge
f52523701c
Fix two problems with pipe_write():
...
1. Data written beyond end of pipe buffer, causing kernel memory corruption.
- Check that space is still valid after obtaining the pipe lock.
- Defer the calculation of transfer size until the pipe
lock has been obtained.
- Update the pipe buffer pointers while holding the pipe lock.
2. Writes of size <= PIPE_BUF not always atomic.
- Allow an internal write to span two contiguous segments,
so writes of size <= PIPE_BUF can be kept atomic
when wrapping around from the end to the start of the
pipe buffer.
PR: 15235
Reviewed by: Matt Dillon <dillon@FreeBSD.org>
1999-12-13 02:55:47 +00:00
..
1999-10-12 21:35:51 +00:00
1999-08-28 01:08:13 +00:00
1999-11-21 12:38:21 +00:00
1999-11-21 12:38:21 +00:00
1999-10-29 18:09:36 +00:00
1999-08-28 01:08:13 +00:00
1999-08-28 01:08:13 +00:00
1999-11-20 10:00:46 +00:00
1999-11-18 20:45:04 +00:00
1999-08-28 01:08:13 +00:00
1999-12-08 10:02:12 +00:00
1999-11-29 21:37:18 +00:00
1999-11-18 08:08:28 +00:00
1999-11-24 01:03:08 +00:00
1999-11-26 08:27:16 +00:00
1999-11-28 12:12:14 +00:00
1999-12-06 11:13:50 +00:00
1999-10-11 15:19:12 +00:00
1999-09-19 08:36:03 +00:00
1999-10-11 20:33:17 +00:00
1999-11-16 10:56:05 +00:00
1999-12-10 17:38:41 +00:00
1999-12-11 16:13:02 +00:00
1999-11-16 16:28:58 +00:00
1999-11-22 02:45:11 +00:00
1999-10-11 15:19:12 +00:00
1999-11-08 06:53:30 +00:00
1999-08-30 16:21:32 +00:00
1999-10-30 06:32:05 +00:00
1999-11-26 08:27:16 +00:00
1999-11-21 19:03:20 +00:00
1999-10-11 15:00:09 +00:00
1999-11-29 11:29:04 +00:00
1999-12-07 04:35:37 +00:00
1999-11-21 19:03:20 +00:00
1999-10-29 18:09:36 +00:00
1999-08-19 16:06:08 +00:00
1999-11-30 09:01:46 +00:00
1999-10-11 15:19:12 +00:00
1999-12-01 02:25:19 +00:00
1999-12-08 10:02:12 +00:00
1999-08-28 01:08:13 +00:00
1999-10-30 06:32:05 +00:00
1999-08-30 21:17:07 +00:00
1999-08-28 01:08:13 +00:00
1998-05-19 21:11:53 +00:00
1999-11-28 12:06:29 +00:00
1999-11-28 11:59:18 +00:00
1999-11-28 11:59:18 +00:00
1999-02-28 22:14:16 +00:00
1999-11-22 14:40:04 +00:00
1999-11-14 13:54:44 +00:00
1999-09-10 23:34:30 +00:00
1999-08-28 01:08:13 +00:00
1999-04-17 08:36:07 +00:00
1999-02-16 10:49:55 +00:00
1999-10-05 21:19:41 +00:00
1999-10-29 18:09:36 +00:00
1999-12-03 09:10:04 +00:00
1999-08-28 01:08:13 +00:00
1999-11-16 10:56:05 +00:00
1999-11-19 23:34:01 +00:00
1999-09-13 12:59:41 +00:00
1999-11-09 21:35:10 +00:00
1999-12-08 09:33:00 +00:00
1999-11-16 16:28:58 +00:00
1999-09-25 18:24:47 +00:00
1999-10-11 15:19:12 +00:00
1999-12-12 05:52:51 +00:00
1999-08-28 01:08:13 +00:00
1999-10-12 02:54:23 +00:00
1999-11-16 16:28:58 +00:00
1999-11-24 01:03:08 +00:00
1999-11-27 12:32:27 +00:00
1999-11-09 01:44:28 +00:00
1999-09-25 18:24:47 +00:00
1999-10-14 10:50:06 +00:00
1999-12-13 02:55:47 +00:00
1999-11-21 19:03:20 +00:00
1999-11-08 03:31:01 +00:00
1999-11-18 20:45:04 +00:00
1999-11-17 21:32:40 +00:00
1999-08-28 01:08:13 +00:00
1999-08-28 01:08:13 +00:00
1999-08-28 01:08:13 +00:00
1999-10-29 18:09:36 +00:00
1999-08-28 01:08:13 +00:00
1999-10-23 04:28:11 +00:00
1999-11-18 06:37:00 +00:00
1999-11-21 02:54:54 +00:00
1999-11-18 06:39:47 +00:00
1999-08-28 01:08:13 +00:00
1999-08-28 01:08:13 +00:00
1999-09-25 18:24:47 +00:00
1999-11-16 10:56:05 +00:00
1999-08-28 01:08:13 +00:00
1999-12-12 05:52:51 +00:00
1999-10-11 15:19:12 +00:00
1999-10-09 20:42:17 +00:00
1999-10-09 20:42:17 +00:00
1999-12-12 05:52:51 +00:00
1999-12-12 05:52:51 +00:00
1999-11-16 10:56:05 +00:00
1999-11-22 10:33:55 +00:00
1999-12-01 02:09:30 +00:00
1999-10-03 12:18:29 +00:00
1999-10-29 18:09:36 +00:00
1999-12-12 16:34:43 +00:00
1999-12-11 16:13:02 +00:00
1999-12-12 03:19:33 +00:00
1999-12-12 03:28:14 +00:00
1999-12-12 16:30:34 +00:00
1999-10-03 12:18:29 +00:00
1999-12-12 16:34:43 +00:00
1999-12-12 03:19:33 +00:00
1999-12-12 03:28:14 +00:00
1999-11-18 08:14:20 +00:00
1999-12-12 16:43:05 +00:00
1999-12-12 16:43:05 +00:00
1999-12-11 16:13:02 +00:00