[pve-devel] [PATCH v2 storage 1/2] fix #3894: cast 'size' and 'used' to integer

Fabian Ebner f.ebner at proxmox.com
Fri Feb 18 08:36:12 CET 2022


Am 17.02.22 um 15:54 schrieb Mira Limbeck:
> Perl's automatic conversion can lead to integers being converted to
> strings, for example by matching it in a regex.
> 
> To make sure we always return an integer in the API calls, add
> explicit casts to integer.
> 
> Signed-off-by: Mira Limbeck <m.limbeck at proxmox.com>
> ---
> v2: new
> 
>  PVE/API2/Storage/Content.pm | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/PVE/API2/Storage/Content.pm b/PVE/API2/Storage/Content.pm
> index 45b8de8..42bff81 100644
> --- a/PVE/API2/Storage/Content.pm
> +++ b/PVE/API2/Storage/Content.pm
> @@ -140,6 +140,8 @@ __PACKAGE__->register_method ({
>  	    eval {  PVE::Storage::check_volume_access($rpcenv, $authuser, $cfg, undef, $item->{volid}); };
>  	    next if $@;
>  	    $item->{vmid} = int($item->{vmid}) if (defined($item->{vmid}));
> +	    $item->{size} = int($item->{size}) if (defined($item->{size}));
> +	    $item->{used} = int($item->{used}) if (defined($item->{used}));

Style nit: superfluous parentheses (of course the pre-existing one is to
blame ;))

>  	    push @$res, $item;
>  	}
>  
> @@ -326,8 +328,8 @@ __PACKAGE__->register_method ({
>  
>  	my $entry = {
>  	    path => $path,
> -	    size => $size,
> -            used => $used,
> +	    size => int($size), # cast to integer in case it was changed to a string previously
> +            used => int($used),

Style nit: please fix the pre-existing white-space error while modifying
the line

>  	    format => $format,
>  	};
>  

Just minor nits, so both patches:

Reviewed-by: Fabian Ebner <f.ebner at proxmox.com>





More information about the pve-devel mailing list