tree 8f915556e039b20018e6d95ab154048a0fddf576
parent 2c5db60e46ad7f03789fe7e2beedb15496930468
author Christian Brauner <christian.brauner@ubuntu.com> 1591213735 +0200
committer Christian Brauner <christian.brauner@ubuntu.com> 1592345258 +0200
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCXulCqgAKCRCRxhvAZXjc
 ooyRAP0YAIqVKiotJ2ax1HY6x0OkPMBaZ/8iH9hWSbEKjsOulAD+OjDH7fxcvHMQ
 tO7WtZ8KYEdyXdRw7sZsD1BacjCK8A8=
 =lM08
 -----END PGP SIGNATURE-----

close_range: add CLOSE_RANGE_UNSHARE

One of the use-cases of close_range() is to drop file descriptors just before
execve(). This would usually be expressed in the sequence:

unshare(CLONE_FILES);
close_range(3, ~0U);

as pointed out by Linus it might be desirable to have this be a part of
close_range() itself under a new flag CLOSE_RANGE_UNSHARE.

This expands {dup,unshare)_fd() to take a max_fds argument that indicates the
maximum number of file descriptors to copy from the old struct files. When the
user requests that all file descriptors are supposed to be closed via
close_range(min, max) then we can cap via unshare_fd(min) and hence don't need
to do any of the heavy fput() work for everything above min.

The patch makes it so that if CLOSE_RANGE_UNSHARE is requested and we do in
fact currently share our file descriptor table we create a new private copy.
We then close all fds in the requested range and finally after we're done we
install the new fd table.

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
