From eba7935f83d0237a25929cf1e0f63b4c1983fce3 Mon Sep 17 00:00:00 2001 From: Mira Limbeck Date: Fri, 18 Feb 2022 09:58:27 +0100 Subject: [PATCH] file_size_info: cast 'size' and 'used' to integer `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 Reviewed-by: Fabian Ebner --- PVE/Storage/Plugin.pm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/PVE/Storage/Plugin.pm b/PVE/Storage/Plugin.pm index 12f1b4b..a6b0bdd 100644 --- a/PVE/Storage/Plugin.pm +++ b/PVE/Storage/Plugin.pm @@ -892,7 +892,11 @@ 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 + # coerce back from string + $size = int($size); ($used) = ($used =~ /^(\d+)$/) or die "used '$used' not an integer\n"; # untaint + # coerce back from string + $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 -- 2.39.5