vfs_default: allow disabling /proc/fds and RESOLVE_NO_SYMLINK at compile time
commit1dff1340c12289bf3aa72cfd94f974320f92fbc2
authorRalph Boehme <slow@samba.org>
Tue, 19 Dec 2023 10:11:55 +0000 (19 11:11 +0100)
committerJule Anger <janger@samba.org>
Mon, 29 Jan 2024 10:46:16 +0000 (29 10:46 +0000)
tree058f84dde1af79eae649d66c43034d358ee02c6e
parent445637d0f4c9aeff4f62075ea19cc2bfa5ae4fb6
vfs_default: allow disabling /proc/fds and RESOLVE_NO_SYMLINK at compile time

This will be used in CI to have a gitlab runner without all modern Linux
features we make use of as part of path processing:

- O_PATH
- openat2() with RESOLVE_NO_SYMLINKS
- somehow safely reopen an O_PATH file handle

That gives what a classix UNIX like AIX or Solaris offers feature wise.

Other OSes support other combinations of those features, but we leave the
exersize of possibly adding more runners supporting those combinations to the
reader.

The following list shows which features are available and used by Samba on a few
OSes:

        | O_PATH         | RESOLVE_NO_SYMLINKS | Safe reopen    | CI covered
--------|----------------|---------------------|----------------------------
        | Supported Used | Supported Used      | Supported Used |
============================================================================
Linux   | +         +    | +         +         | +         +    | +
FreeBSD | +         +    | + [1]     -         | + [2]     -    | -
AIX     | -         -    | -         -         | -         -    | +

[1] via open() flag O_RESOLVE_BENEATH
[2] via open() flag O_EMPTY_PATH

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15549

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
(cherry picked from commit 5c2f96442a25a1725809a28b3719afbc0bd01830)
source3/modules/vfs_default.c