Am 17.02.22 um 15:54 schrieb Mira Limbeck: > `qemu-img info --output=json` returns the size and used values as integers in > the JSON format, 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. > > Signed-off-by: Mira Limbeck <m.limb...@proxmox.com> > --- > v2: > - reworded commit subject and message > > 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
Nit: Not sure if it's worth to put such a lengthy comment rather than something like "coerce back from string". One can still read the commit message in the git history if there ever is confusion about why it's there. > + $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