[pve-devel] applied: [PATCH common] tools: add fchownat syscall
Thomas Lamprecht
t.lamprecht at proxmox.com
Wed Aug 14 15:36:00 CEST 2019
Am 7/24/19 um 1:37 PM schrieb Fabian Grünbichler:
> and constant AT_EMPTY_PATH for chowning a directory/file opened via
> openat(2), for example when walking/creating a directory tree without
> following symlinks.
>
> Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
> ---
> src/PVE/Syscall.pm | 1 +
> src/PVE/Tools.pm | 7 +++++++
> 2 files changed, 8 insertions(+)
>
> diff --git a/src/PVE/Syscall.pm b/src/PVE/Syscall.pm
> index a2903b7..99e43e7 100644
> --- a/src/PVE/Syscall.pm
> +++ b/src/PVE/Syscall.pm
> @@ -14,6 +14,7 @@ BEGIN {
> mkdirat => &SYS_mkdirat,
> faccessat => &SYS_faccessat,
> setresuid => &SYS_setresuid,
> + fchownat => &SYS_fchownat,
> );
> };
>
> diff --git a/src/PVE/Tools.pm b/src/PVE/Tools.pm
> index 676647e..550da09 100644
> --- a/src/PVE/Tools.pm
> +++ b/src/PVE/Tools.pm
> @@ -85,6 +85,8 @@ use constant {CLONE_NEWNS => 0x00020000,
> use constant {O_PATH => 0x00200000,
> O_TMPFILE => 0x00410000}; # This includes O_DIRECTORY
>
> +use constant {AT_EMPTY_PATH => 0x1000};
> +
> sub run_with_timeout {
> my ($timeout, $code, @param) = @_;
>
> @@ -1556,6 +1558,11 @@ sub mkdirat($$$) {
> return syscall(PVE::Syscall::mkdirat, $dirfd, $name, $mode) == 0;
> }
>
> +sub fchownat($$$$$) {
> + my ($dirfd, $pathname, $owner, $group, $flags) = @_;
> + return syscall(PVE::Syscall::fchownat, $dirfd, $pathname, $owner, $group, $flags) == 0;
> +}
> +
> my $salt_starter = time();
>
> sub encrypt_pw {
>
applied, thanks! For the container part I'll wait until pve-common gets
bumped, which I'll do Friday, if it did not happen until then - just FYI.
More information about the pve-devel
mailing list