untaint df return values
authorDominik Csapak <d.csapak@proxmox.com>
Tue, 24 Apr 2018 08:15:14 +0000 (10:15 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 24 Apr 2018 08:42:13 +0000 (10:42 +0200)
since we sometimes use their length in a format string for printf

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Co-authored-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
src/PVE/Tools.pm

index d5373a4..6a2dae4 100644 (file)
@@ -986,10 +986,14 @@ sub df {
     my $res = eval { run_fork_with_timeout($timeout, $df) } // {};
     warn $@ if $@;
 
+    # untaint the values
+    my ($blocks, $used, $bavail) = map { defined($_) ? (/^(\d+)$/) : 0 }
+       $res->@{qw(blocks used bavail)};
+
     return {
-       total => $res->{blocks} // 0,
-       used => $res->{used} // 0,
-       avail => $res->{bavail} // 0,
+       total => $blocks,
+       used => $used,
+       avail => $bavail,
     };
 }