Rodrigo Tobar
bf4e536f00
Kernel: Correctly interpret ioctl's FIONBIO user value
...
Values in `ioctl` are given through a pointer, but ioctl's FIONBIO
implementation was interpreting this pointer as an integer directly.
This meant that programs using `ioctl` to set a file descriptor in
blocking mode met with incorrect behavior: they passed a non-null
pointer pointing to a value of 0, but the kernel interpreted the pointer
as a non-zero integer, thus making the file non-blocking.
This commit fixes this behavior by reading the value from the userspace
pointer and using that to set the non-blocking flag on the file
descriptor.
This bug was found while trying to run the openssl tool on serenity,
which used `ioctl` to ensure newly-created sockets are in blocking mode.
2021-10-11 10:46:01 -07:00
..
2021-10-01 00:51:49 +01:00
2021-10-07 21:30:13 +02:00
2021-10-03 13:36:10 +02:00
2021-10-03 13:36:10 +02:00
2021-10-09 12:07:56 +02:00
2021-10-09 12:07:56 +02:00
2021-10-03 13:36:10 +02:00
2021-10-02 18:16:15 +02:00
2021-10-06 17:11:02 +02:00
2021-10-07 21:30:13 +02:00
2021-09-14 18:31:16 +00:00
2021-10-07 22:10:45 +02:00
2021-10-08 23:33:46 +02:00
2021-10-02 21:23:28 +01:00
2021-10-10 21:03:27 +01:00
2021-10-11 10:46:01 -07:00
2021-09-07 13:53:14 +02:00
2021-10-03 13:36:10 +02:00
2021-10-06 12:31:13 +02:00
2021-10-09 01:39:55 +02:00
2021-10-01 12:27:20 +02:00
2021-10-08 23:33:46 +02:00
2021-09-09 21:25:10 +02:00
2021-09-30 17:54:32 +02:00
2021-09-30 17:54:32 +02:00
2021-09-14 18:31:16 +00:00
2021-09-07 16:00:39 +02:00
2021-09-07 13:53:14 +02:00
2021-09-08 00:42:20 +02:00
2021-08-24 01:57:11 +02:00
2021-08-24 01:57:11 +02:00
2021-10-07 21:09:38 +02:00
2021-09-17 01:02:48 +03:00
2021-09-08 20:16:00 +02:00
2021-09-13 14:38:53 +04:30
2021-09-08 20:16:00 +02:00
2021-09-06 19:25:36 +02:00
2021-09-06 19:25:36 +02:00
2021-10-01 12:27:20 +02:00
2021-09-10 22:58:08 +03:00
2021-09-06 19:25:36 +02:00
2021-09-13 14:38:53 +04:30
2021-10-08 23:33:46 +02:00
2021-09-07 20:15:15 +01:00
2021-10-01 12:27:20 +02:00
2021-09-13 14:38:53 +04:30
2021-09-13 14:38:53 +04:30
2021-10-02 18:16:15 +02:00
2021-10-08 23:33:46 +02:00
2021-09-12 11:52:16 +02:00
2021-09-07 15:54:23 +02:00
2021-09-07 13:53:14 +02:00
2021-09-06 01:55:27 +02:00
2021-09-10 18:05:46 +03:00
2021-09-07 13:53:14 +02:00
2021-09-07 22:16:25 +02:00
2021-09-01 18:06:14 +02:00
2021-09-06 01:53:26 +02:00
2021-10-01 12:27:20 +02:00
2021-09-06 01:55:27 +02:00
2021-09-10 18:05:46 +03:00
2021-08-22 03:34:10 +02:00
2021-09-07 01:18:02 +02:00
2021-09-07 01:18:02 +02:00
2021-10-08 23:33:46 +02:00
2021-09-12 18:24:15 +02:00
2021-09-10 18:05:46 +03:00
2021-09-07 13:53:14 +02:00
2021-09-07 14:48:13 +02:00
2021-09-07 22:16:25 +02:00
2021-09-10 18:05:46 +03:00
2021-09-07 13:53:14 +02:00
2021-09-07 13:53:14 +02:00
2021-08-25 12:12:59 +02:00
2021-08-24 01:57:11 +02:00
2021-08-24 01:57:11 +02:00
2021-09-07 13:53:14 +02:00
2021-09-10 18:05:46 +03:00