if the size/avail of a mount is bigger than a certain amount,
json_encode writes the number in scientific format, which did not
fit inside our \d+ regex

this resulted in 'undef' values for the result hash and subsequently
led to errors and warnings

extend it to also catch scientific formatted numbers

Signed-off-by: Dominik Csapak <d.csa...@proxmox.com>
---
 src/PVE/Tools.pm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/PVE/Tools.pm b/src/PVE/Tools.pm
index 02c2886..89de4ec 100644
--- a/src/PVE/Tools.pm
+++ b/src/PVE/Tools.pm
@@ -1008,7 +1008,7 @@ sub df {
     warn $@ if $@;
 
     # untaint the values
-    my ($blocks, $used, $bavail) = map { defined($_) ? (/^(\d+)$/) : 0 }
+    my ($blocks, $used, $bavail) = map { defined($_) ? (/^([\d\.e\-+]+)$/) : 0 
} # can be in scientific notation
        $res->@{qw(blocks used bavail)};
 
     return {
-- 
2.20.1


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to