Am 17.02.22 um 13:55 schrieb Mira Limbeck: > 'qemu-img info' with output format 'json' returns the size and used values as > integers, but the regex match converts them to strings. > As we know they only contain digits, we can simply cast them back to integers > after the regex. > > The API requires them to be integers. >
Any reason for not doing it in the API call itself? That would cover all plugins and future changes. > Signed-off-by: Mira Limbeck <m.limb...@proxmox.com> > --- > PVE/Storage/Plugin.pm | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/PVE/Storage/Plugin.pm b/PVE/Storage/Plugin.pm > index 12f1b4b..bcc0cc0 100644 > --- a/PVE/Storage/Plugin.pm > +++ b/PVE/Storage/Plugin.pm > @@ -892,7 +892,13 @@ sub file_size_info { > my ($size, $format, $used, $parent) = $info->@{qw(virtual-size format > actual-size backing-filename)}; > > ($size) = ($size =~ /^(\d+)$/) or die "size '$size' not an integer\n"; # > untaint > + # the regex above changes the type of $size to 'string' > + # we know it is an integer based on the regex above, so simply cast it > back > + # this is required by the API > + $size = int($size); > ($used) = ($used =~ /^(\d+)$/) or die "used '$used' not an integer\n"; # > untaint > + # same as $size above > + $used = int($used); > ($format) = ($format =~ /^(\S+)$/) or die "format '$format' includes > whitespace\n"; # untaint > if (defined($parent)) { > ($parent) = ($parent =~ /^(\S+)$/) or die "parent '$parent' includes > whitespace\n"; # untaint _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel