[pve-devel] [PATCH common] fix PVE::Tools::df for big mounts

Dominik Csapak d.csapak at proxmox.com
Tue Nov 12 13:56:20 CET 2019


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.csapak at 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





More information about the pve-devel mailing list