[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